diff options
author | Markus Hatvan <markus_hatvan@aon.at> | 2021-07-02 19:49:55 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-03 07:19:55 +0530 |
commit | 33123c354b79f7951423dd75097b11e7eb075f99 (patch) | |
tree | 29f6e857f02d0e0fc67d89a657a54a865ed5538a | |
parent | Minor refactoring to move all runtime configs from 'config.js' into 'environm... (diff) | |
download | ferdium-app-33123c354b79f7951423dd75097b11e7eb075f99.tar.gz ferdium-app-33123c354b79f7951423dd75097b11e7eb075f99.tar.zst ferdium-app-33123c354b79f7951423dd75097b11e7eb075f99.zip |
Upgrade various dependencies to latest part 2 (#1557)
* Upgrade various dependencies to latest, remove unnecessary electron-hunspell
- upgrade eslint and friends to latest
- remove deprecated 'node-sass' in favor of 'sass'
- disable new rules from 'eslint-config-airbnb' that are conflicting with current code style
- add workspace config for 'vscode' that silences 'experimentalDecorator' warning and forces 'prettier' to single quote
* Run yarn lint to autofix with new ruleset and worked down lint issues to zero
58 files changed, 1404 insertions, 1062 deletions
@@ -3,19 +3,29 @@ | |||
3 | "extends": "eslint-config-airbnb", | 3 | "extends": "eslint-config-airbnb", |
4 | "plugins": ["jest"], | 4 | "plugins": ["jest"], |
5 | "rules": { | 5 | "rules": { |
6 | "arrow-parens": 0, | ||
6 | "consistent-return": 0, | 7 | "consistent-return": 0, |
7 | "no-param-reassign": 0, | 8 | "no-param-reassign": 0, |
8 | "import/extensions": 0, | 9 | "import/extensions": 0, |
9 | "import/no-extraneous-dependencies": 0, | 10 | "import/no-extraneous-dependencies": 0, |
10 | "import/no-unresolved": [2, { | 11 | "import/no-unresolved": [ |
11 | "ignore": ["electron"] | 12 | 2, |
12 | }], | 13 | { |
14 | "ignore": ["electron"] | ||
15 | } | ||
16 | ], | ||
13 | "import/prefer-default-export": 0, | 17 | "import/prefer-default-export": 0, |
14 | "linebreak-style": 0, | 18 | "linebreak-style": 0, |
19 | "react/static-property-placement": 0, | ||
20 | "react/state-in-constructor": 0, | ||
21 | "react/jsx-props-no-spreading": 0, | ||
15 | "react/prefer-stateless-function": 0, | 22 | "react/prefer-stateless-function": 0, |
16 | "react/jsx-filename-extension": [1, { | 23 | "react/jsx-filename-extension": [ |
17 | "extensions": [".js", ".jsx"] | 24 | 1, |
18 | }], | 25 | { |
26 | "extensions": [".js", ".jsx"] | ||
27 | } | ||
28 | ], | ||
19 | "react/forbid-prop-types": 0, | 29 | "react/forbid-prop-types": 0, |
20 | "react/destructuring-assignment": 0, | 30 | "react/destructuring-assignment": 0, |
21 | "prefer-destructuring": 1, | 31 | "prefer-destructuring": 1, |
@@ -32,13 +42,9 @@ | |||
32 | "jsx-a11y/label-has-for": [ | 42 | "jsx-a11y/label-has-for": [ |
33 | 2, | 43 | 2, |
34 | { | 44 | { |
35 | "components": [ | 45 | "components": ["Label"], |
36 | "Label" | ||
37 | ], | ||
38 | "required": { | 46 | "required": { |
39 | "every": [ | 47 | "every": ["id"] |
40 | "id" | ||
41 | ] | ||
42 | }, | 48 | }, |
43 | "allowChildren": false | 49 | "allowChildren": false |
44 | } | 50 | } |
diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..313fc9aee --- /dev/null +++ b/.vscode/settings.json | |||
@@ -0,0 +1,4 @@ | |||
1 | { | ||
2 | "prettier.singleQuote": true, | ||
3 | "js/ts.implicitProjectConfig.experimentalDecorators": true | ||
4 | } \ No newline at end of file | ||
diff --git a/package-lock.json b/package-lock.json index afa6933b0..6eae814cb 100644 --- a/package-lock.json +++ b/package-lock.json | |||
@@ -4102,6 +4102,56 @@ | |||
4102 | } | 4102 | } |
4103 | } | 4103 | } |
4104 | }, | 4104 | }, |
4105 | "@eslint/eslintrc": { | ||
4106 | "version": "0.4.2", | ||
4107 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", | ||
4108 | "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", | ||
4109 | "dev": true, | ||
4110 | "requires": { | ||
4111 | "ajv": "^6.12.4", | ||
4112 | "debug": "^4.1.1", | ||
4113 | "espree": "^7.3.0", | ||
4114 | "globals": "^13.9.0", | ||
4115 | "ignore": "^4.0.6", | ||
4116 | "import-fresh": "^3.2.1", | ||
4117 | "js-yaml": "^3.13.1", | ||
4118 | "minimatch": "^3.0.4", | ||
4119 | "strip-json-comments": "^3.1.1" | ||
4120 | }, | ||
4121 | "dependencies": { | ||
4122 | "globals": { | ||
4123 | "version": "13.9.0", | ||
4124 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", | ||
4125 | "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", | ||
4126 | "dev": true, | ||
4127 | "requires": { | ||
4128 | "type-fest": "^0.20.2" | ||
4129 | } | ||
4130 | }, | ||
4131 | "js-yaml": { | ||
4132 | "version": "3.14.1", | ||
4133 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", | ||
4134 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", | ||
4135 | "dev": true, | ||
4136 | "requires": { | ||
4137 | "argparse": "^1.0.7", | ||
4138 | "esprima": "^4.0.0" | ||
4139 | } | ||
4140 | }, | ||
4141 | "strip-json-comments": { | ||
4142 | "version": "3.1.1", | ||
4143 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", | ||
4144 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", | ||
4145 | "dev": true | ||
4146 | }, | ||
4147 | "type-fest": { | ||
4148 | "version": "0.20.2", | ||
4149 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", | ||
4150 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", | ||
4151 | "dev": true | ||
4152 | } | ||
4153 | } | ||
4154 | }, | ||
4105 | "@fimbul/bifrost": { | 4155 | "@fimbul/bifrost": { |
4106 | "version": "0.21.0", | 4156 | "version": "0.21.0", |
4107 | "resolved": "https://registry.npmjs.org/@fimbul/bifrost/-/bifrost-0.21.0.tgz", | 4157 | "resolved": "https://registry.npmjs.org/@fimbul/bifrost/-/bifrost-0.21.0.tgz", |
@@ -9053,34 +9103,124 @@ | |||
9053 | "dev": true | 9103 | "dev": true |
9054 | }, | 9104 | }, |
9055 | "@typescript-eslint/experimental-utils": { | 9105 | "@typescript-eslint/experimental-utils": { |
9056 | "version": "1.13.0", | 9106 | "version": "4.28.0", |
9057 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", | 9107 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.0.tgz", |
9058 | "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", | 9108 | "integrity": "sha512-9XD9s7mt3QWMk82GoyUpc/Ji03vz4T5AYlHF9DcoFNfJ/y3UAclRsfGiE2gLfXtyC+JRA3trR7cR296TEb1oiQ==", |
9059 | "dev": true, | 9109 | "dev": true, |
9060 | "requires": { | 9110 | "requires": { |
9061 | "@types/json-schema": "^7.0.3", | 9111 | "@types/json-schema": "^7.0.7", |
9062 | "@typescript-eslint/typescript-estree": "1.13.0", | 9112 | "@typescript-eslint/scope-manager": "4.28.0", |
9063 | "eslint-scope": "^4.0.0" | 9113 | "@typescript-eslint/types": "4.28.0", |
9114 | "@typescript-eslint/typescript-estree": "4.28.0", | ||
9115 | "eslint-scope": "^5.1.1", | ||
9116 | "eslint-utils": "^3.0.0" | ||
9117 | }, | ||
9118 | "dependencies": { | ||
9119 | "eslint-scope": { | ||
9120 | "version": "5.1.1", | ||
9121 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", | ||
9122 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", | ||
9123 | "dev": true, | ||
9124 | "requires": { | ||
9125 | "esrecurse": "^4.3.0", | ||
9126 | "estraverse": "^4.1.1" | ||
9127 | } | ||
9128 | }, | ||
9129 | "eslint-utils": { | ||
9130 | "version": "3.0.0", | ||
9131 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", | ||
9132 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", | ||
9133 | "dev": true, | ||
9134 | "requires": { | ||
9135 | "eslint-visitor-keys": "^2.0.0" | ||
9136 | } | ||
9137 | }, | ||
9138 | "esrecurse": { | ||
9139 | "version": "4.3.0", | ||
9140 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", | ||
9141 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", | ||
9142 | "dev": true, | ||
9143 | "requires": { | ||
9144 | "estraverse": "^5.2.0" | ||
9145 | }, | ||
9146 | "dependencies": { | ||
9147 | "estraverse": { | ||
9148 | "version": "5.2.0", | ||
9149 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", | ||
9150 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", | ||
9151 | "dev": true | ||
9152 | } | ||
9153 | } | ||
9154 | } | ||
9064 | } | 9155 | } |
9065 | }, | 9156 | }, |
9157 | "@typescript-eslint/scope-manager": { | ||
9158 | "version": "4.28.0", | ||
9159 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.0.tgz", | ||
9160 | "integrity": "sha512-eCALCeScs5P/EYjwo6se9bdjtrh8ByWjtHzOkC4Tia6QQWtQr3PHovxh3TdYTuFcurkYI4rmFsRFpucADIkseg==", | ||
9161 | "dev": true, | ||
9162 | "requires": { | ||
9163 | "@typescript-eslint/types": "4.28.0", | ||
9164 | "@typescript-eslint/visitor-keys": "4.28.0" | ||
9165 | } | ||
9166 | }, | ||
9167 | "@typescript-eslint/types": { | ||
9168 | "version": "4.28.0", | ||
9169 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.0.tgz", | ||
9170 | "integrity": "sha512-p16xMNKKoiJCVZY5PW/AfILw2xe1LfruTcfAKBj3a+wgNYP5I9ZEKNDOItoRt53p4EiPV6iRSICy8EPanG9ZVA==", | ||
9171 | "dev": true | ||
9172 | }, | ||
9066 | "@typescript-eslint/typescript-estree": { | 9173 | "@typescript-eslint/typescript-estree": { |
9067 | "version": "1.13.0", | 9174 | "version": "4.28.0", |
9068 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", | 9175 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.0.tgz", |
9069 | "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", | 9176 | "integrity": "sha512-m19UQTRtxMzKAm8QxfKpvh6OwQSXaW1CdZPoCaQuLwAq7VZMNuhJmZR4g5281s2ECt658sldnJfdpSZZaxUGMQ==", |
9070 | "dev": true, | 9177 | "dev": true, |
9071 | "requires": { | 9178 | "requires": { |
9072 | "lodash.unescape": "4.0.1", | 9179 | "@typescript-eslint/types": "4.28.0", |
9073 | "semver": "5.5.0" | 9180 | "@typescript-eslint/visitor-keys": "4.28.0", |
9181 | "debug": "^4.3.1", | ||
9182 | "globby": "^11.0.3", | ||
9183 | "is-glob": "^4.0.1", | ||
9184 | "semver": "^7.3.5", | ||
9185 | "tsutils": "^3.21.0" | ||
9074 | }, | 9186 | }, |
9075 | "dependencies": { | 9187 | "dependencies": { |
9076 | "semver": { | 9188 | "debug": { |
9077 | "version": "5.5.0", | 9189 | "version": "4.3.1", |
9078 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", | 9190 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", |
9079 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", | 9191 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", |
9192 | "dev": true, | ||
9193 | "requires": { | ||
9194 | "ms": "2.1.2" | ||
9195 | } | ||
9196 | }, | ||
9197 | "ms": { | ||
9198 | "version": "2.1.2", | ||
9199 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
9200 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", | ||
9080 | "dev": true | 9201 | "dev": true |
9202 | }, | ||
9203 | "tsutils": { | ||
9204 | "version": "3.21.0", | ||
9205 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", | ||
9206 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", | ||
9207 | "dev": true, | ||
9208 | "requires": { | ||
9209 | "tslib": "^1.8.1" | ||
9210 | } | ||
9081 | } | 9211 | } |
9082 | } | 9212 | } |
9083 | }, | 9213 | }, |
9214 | "@typescript-eslint/visitor-keys": { | ||
9215 | "version": "4.28.0", | ||
9216 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.0.tgz", | ||
9217 | "integrity": "sha512-PjJyTWwrlrvM5jazxYF5ZPs/nl0kHDZMVbuIcbpawVXaDPelp3+S9zpOz5RmVUfS/fD5l5+ZXNKnWhNYjPzCvw==", | ||
9218 | "dev": true, | ||
9219 | "requires": { | ||
9220 | "@typescript-eslint/types": "4.28.0", | ||
9221 | "eslint-visitor-keys": "^2.0.0" | ||
9222 | } | ||
9223 | }, | ||
9084 | "@ungap/promise-all-settled": { | 9224 | "@ungap/promise-all-settled": { |
9085 | "version": "1.1.2", | 9225 | "version": "1.1.2", |
9086 | "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", | 9226 | "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", |
@@ -9316,9 +9456,9 @@ | |||
9316 | } | 9456 | } |
9317 | }, | 9457 | }, |
9318 | "acorn": { | 9458 | "acorn": { |
9319 | "version": "6.4.2", | 9459 | "version": "7.4.1", |
9320 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", | 9460 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", |
9321 | "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", | 9461 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", |
9322 | "dev": true | 9462 | "dev": true |
9323 | }, | 9463 | }, |
9324 | "acorn-globals": { | 9464 | "acorn-globals": { |
@@ -9940,12 +10080,6 @@ | |||
9940 | "ansi-wrap": "0.1.0" | 10080 | "ansi-wrap": "0.1.0" |
9941 | } | 10081 | } |
9942 | }, | 10082 | }, |
9943 | "ansi-escapes": { | ||
9944 | "version": "3.2.0", | ||
9945 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", | ||
9946 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", | ||
9947 | "dev": true | ||
9948 | }, | ||
9949 | "ansi-gray": { | 10083 | "ansi-gray": { |
9950 | "version": "0.1.1", | 10084 | "version": "0.1.1", |
9951 | "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", | 10085 | "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", |
@@ -10913,9 +11047,9 @@ | |||
10913 | "dev": true | 11047 | "dev": true |
10914 | }, | 11048 | }, |
10915 | "astral-regex": { | 11049 | "astral-regex": { |
10916 | "version": "1.0.0", | 11050 | "version": "2.0.0", |
10917 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", | 11051 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", |
10918 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", | 11052 | "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", |
10919 | "dev": true | 11053 | "dev": true |
10920 | }, | 11054 | }, |
10921 | "async": { | 11055 | "async": { |
@@ -12660,15 +12794,6 @@ | |||
12660 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", | 12794 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", |
12661 | "dev": true | 12795 | "dev": true |
12662 | }, | 12796 | }, |
12663 | "cli-cursor": { | ||
12664 | "version": "2.1.0", | ||
12665 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", | ||
12666 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", | ||
12667 | "dev": true, | ||
12668 | "requires": { | ||
12669 | "restore-cursor": "^2.0.0" | ||
12670 | } | ||
12671 | }, | ||
12672 | "cli-spinners": { | 12797 | "cli-spinners": { |
12673 | "version": "2.6.0", | 12798 | "version": "2.6.0", |
12674 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", | 12799 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", |
@@ -12713,12 +12838,6 @@ | |||
12713 | } | 12838 | } |
12714 | } | 12839 | } |
12715 | }, | 12840 | }, |
12716 | "cli-width": { | ||
12717 | "version": "2.2.1", | ||
12718 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", | ||
12719 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", | ||
12720 | "dev": true | ||
12721 | }, | ||
12722 | "cliui": { | 12841 | "cliui": { |
12723 | "version": "4.1.0", | 12842 | "version": "4.1.0", |
12724 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", | 12843 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", |
@@ -17035,49 +17154,231 @@ | |||
17035 | } | 17154 | } |
17036 | }, | 17155 | }, |
17037 | "eslint": { | 17156 | "eslint": { |
17038 | "version": "5.16.0", | 17157 | "version": "7.29.0", |
17039 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", | 17158 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", |
17040 | "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", | 17159 | "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", |
17041 | "dev": true, | 17160 | "dev": true, |
17042 | "requires": { | 17161 | "requires": { |
17043 | "@babel/code-frame": "^7.0.0", | 17162 | "@babel/code-frame": "7.12.11", |
17044 | "ajv": "^6.9.1", | 17163 | "@eslint/eslintrc": "^0.4.2", |
17045 | "chalk": "^2.1.0", | 17164 | "ajv": "^6.10.0", |
17046 | "cross-spawn": "^6.0.5", | 17165 | "chalk": "^4.0.0", |
17166 | "cross-spawn": "^7.0.2", | ||
17047 | "debug": "^4.0.1", | 17167 | "debug": "^4.0.1", |
17048 | "doctrine": "^3.0.0", | 17168 | "doctrine": "^3.0.0", |
17049 | "eslint-scope": "^4.0.3", | 17169 | "enquirer": "^2.3.5", |
17050 | "eslint-utils": "^1.3.1", | 17170 | "escape-string-regexp": "^4.0.0", |
17051 | "eslint-visitor-keys": "^1.0.0", | 17171 | "eslint-scope": "^5.1.1", |
17052 | "espree": "^5.0.1", | 17172 | "eslint-utils": "^2.1.0", |
17053 | "esquery": "^1.0.1", | 17173 | "eslint-visitor-keys": "^2.0.0", |
17174 | "espree": "^7.3.1", | ||
17175 | "esquery": "^1.4.0", | ||
17054 | "esutils": "^2.0.2", | 17176 | "esutils": "^2.0.2", |
17055 | "file-entry-cache": "^5.0.1", | 17177 | "fast-deep-equal": "^3.1.3", |
17178 | "file-entry-cache": "^6.0.1", | ||
17056 | "functional-red-black-tree": "^1.0.1", | 17179 | "functional-red-black-tree": "^1.0.1", |
17057 | "glob": "^7.1.2", | 17180 | "glob-parent": "^5.1.2", |
17058 | "globals": "^11.7.0", | 17181 | "globals": "^13.6.0", |
17059 | "ignore": "^4.0.6", | 17182 | "ignore": "^4.0.6", |
17060 | "import-fresh": "^3.0.0", | 17183 | "import-fresh": "^3.0.0", |
17061 | "imurmurhash": "^0.1.4", | 17184 | "imurmurhash": "^0.1.4", |
17062 | "inquirer": "^6.2.2", | 17185 | "is-glob": "^4.0.0", |
17063 | "js-yaml": "^3.13.0", | 17186 | "js-yaml": "^3.13.1", |
17064 | "json-stable-stringify-without-jsonify": "^1.0.1", | 17187 | "json-stable-stringify-without-jsonify": "^1.0.1", |
17065 | "levn": "^0.3.0", | 17188 | "levn": "^0.4.1", |
17066 | "lodash": "^4.17.11", | 17189 | "lodash.merge": "^4.6.2", |
17067 | "minimatch": "^3.0.4", | 17190 | "minimatch": "^3.0.4", |
17068 | "mkdirp": "^0.5.1", | ||
17069 | "natural-compare": "^1.4.0", | 17191 | "natural-compare": "^1.4.0", |
17070 | "optionator": "^0.8.2", | 17192 | "optionator": "^0.9.1", |
17071 | "path-is-inside": "^1.0.2", | ||
17072 | "progress": "^2.0.0", | 17193 | "progress": "^2.0.0", |
17073 | "regexpp": "^2.0.1", | 17194 | "regexpp": "^3.1.0", |
17074 | "semver": "^5.5.1", | 17195 | "semver": "^7.2.1", |
17075 | "strip-ansi": "^4.0.0", | 17196 | "strip-ansi": "^6.0.0", |
17076 | "strip-json-comments": "^2.0.1", | 17197 | "strip-json-comments": "^3.1.0", |
17077 | "table": "^5.2.3", | 17198 | "table": "^6.0.9", |
17078 | "text-table": "^0.2.0" | 17199 | "text-table": "^0.2.0", |
17200 | "v8-compile-cache": "^2.0.3" | ||
17079 | }, | 17201 | }, |
17080 | "dependencies": { | 17202 | "dependencies": { |
17203 | "@babel/code-frame": { | ||
17204 | "version": "7.12.11", | ||
17205 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", | ||
17206 | "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", | ||
17207 | "dev": true, | ||
17208 | "requires": { | ||
17209 | "@babel/highlight": "^7.10.4" | ||
17210 | } | ||
17211 | }, | ||
17212 | "@babel/helper-validator-identifier": { | ||
17213 | "version": "7.14.5", | ||
17214 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", | ||
17215 | "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", | ||
17216 | "dev": true | ||
17217 | }, | ||
17218 | "@babel/highlight": { | ||
17219 | "version": "7.14.5", | ||
17220 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", | ||
17221 | "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", | ||
17222 | "dev": true, | ||
17223 | "requires": { | ||
17224 | "@babel/helper-validator-identifier": "^7.14.5", | ||
17225 | "chalk": "^2.0.0", | ||
17226 | "js-tokens": "^4.0.0" | ||
17227 | }, | ||
17228 | "dependencies": { | ||
17229 | "chalk": { | ||
17230 | "version": "2.4.2", | ||
17231 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | ||
17232 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", | ||
17233 | "dev": true, | ||
17234 | "requires": { | ||
17235 | "ansi-styles": "^3.2.1", | ||
17236 | "escape-string-regexp": "^1.0.5", | ||
17237 | "supports-color": "^5.3.0" | ||
17238 | } | ||
17239 | }, | ||
17240 | "escape-string-regexp": { | ||
17241 | "version": "1.0.5", | ||
17242 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", | ||
17243 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", | ||
17244 | "dev": true | ||
17245 | } | ||
17246 | } | ||
17247 | }, | ||
17248 | "ansi-colors": { | ||
17249 | "version": "4.1.1", | ||
17250 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", | ||
17251 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", | ||
17252 | "dev": true | ||
17253 | }, | ||
17254 | "ansi-regex": { | ||
17255 | "version": "5.0.0", | ||
17256 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | ||
17257 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", | ||
17258 | "dev": true | ||
17259 | }, | ||
17260 | "chalk": { | ||
17261 | "version": "4.1.1", | ||
17262 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", | ||
17263 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", | ||
17264 | "dev": true, | ||
17265 | "requires": { | ||
17266 | "ansi-styles": "^4.1.0", | ||
17267 | "supports-color": "^7.1.0" | ||
17268 | }, | ||
17269 | "dependencies": { | ||
17270 | "ansi-styles": { | ||
17271 | "version": "4.3.0", | ||
17272 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", | ||
17273 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", | ||
17274 | "dev": true, | ||
17275 | "requires": { | ||
17276 | "color-convert": "^2.0.1" | ||
17277 | } | ||
17278 | }, | ||
17279 | "supports-color": { | ||
17280 | "version": "7.2.0", | ||
17281 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", | ||
17282 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", | ||
17283 | "dev": true, | ||
17284 | "requires": { | ||
17285 | "has-flag": "^4.0.0" | ||
17286 | } | ||
17287 | } | ||
17288 | } | ||
17289 | }, | ||
17290 | "color-convert": { | ||
17291 | "version": "2.0.1", | ||
17292 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||
17293 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||
17294 | "dev": true, | ||
17295 | "requires": { | ||
17296 | "color-name": "~1.1.4" | ||
17297 | } | ||
17298 | }, | ||
17299 | "color-name": { | ||
17300 | "version": "1.1.4", | ||
17301 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||
17302 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||
17303 | "dev": true | ||
17304 | }, | ||
17305 | "cross-spawn": { | ||
17306 | "version": "7.0.3", | ||
17307 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", | ||
17308 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", | ||
17309 | "dev": true, | ||
17310 | "requires": { | ||
17311 | "path-key": "^3.1.0", | ||
17312 | "shebang-command": "^2.0.0", | ||
17313 | "which": "^2.0.1" | ||
17314 | } | ||
17315 | }, | ||
17316 | "enquirer": { | ||
17317 | "version": "2.3.6", | ||
17318 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", | ||
17319 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", | ||
17320 | "dev": true, | ||
17321 | "requires": { | ||
17322 | "ansi-colors": "^4.1.1" | ||
17323 | } | ||
17324 | }, | ||
17325 | "escape-string-regexp": { | ||
17326 | "version": "4.0.0", | ||
17327 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", | ||
17328 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", | ||
17329 | "dev": true | ||
17330 | }, | ||
17331 | "eslint-scope": { | ||
17332 | "version": "5.1.1", | ||
17333 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", | ||
17334 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", | ||
17335 | "dev": true, | ||
17336 | "requires": { | ||
17337 | "esrecurse": "^4.3.0", | ||
17338 | "estraverse": "^4.1.1" | ||
17339 | } | ||
17340 | }, | ||
17341 | "esrecurse": { | ||
17342 | "version": "4.3.0", | ||
17343 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", | ||
17344 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", | ||
17345 | "dev": true, | ||
17346 | "requires": { | ||
17347 | "estraverse": "^5.2.0" | ||
17348 | }, | ||
17349 | "dependencies": { | ||
17350 | "estraverse": { | ||
17351 | "version": "5.2.0", | ||
17352 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", | ||
17353 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", | ||
17354 | "dev": true | ||
17355 | } | ||
17356 | } | ||
17357 | }, | ||
17358 | "glob-parent": { | ||
17359 | "version": "5.1.2", | ||
17360 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", | ||
17361 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", | ||
17362 | "dev": true, | ||
17363 | "requires": { | ||
17364 | "is-glob": "^4.0.1" | ||
17365 | } | ||
17366 | }, | ||
17367 | "globals": { | ||
17368 | "version": "13.9.0", | ||
17369 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", | ||
17370 | "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", | ||
17371 | "dev": true, | ||
17372 | "requires": { | ||
17373 | "type-fest": "^0.20.2" | ||
17374 | } | ||
17375 | }, | ||
17376 | "has-flag": { | ||
17377 | "version": "4.0.0", | ||
17378 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | ||
17379 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | ||
17380 | "dev": true | ||
17381 | }, | ||
17081 | "js-yaml": { | 17382 | "js-yaml": { |
17082 | "version": "3.14.1", | 17383 | "version": "3.14.1", |
17083 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", | 17384 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", |
@@ -17088,34 +17389,158 @@ | |||
17088 | "esprima": "^4.0.0" | 17389 | "esprima": "^4.0.0" |
17089 | } | 17390 | } |
17090 | }, | 17391 | }, |
17091 | "semver": { | 17392 | "levn": { |
17092 | "version": "5.7.1", | 17393 | "version": "0.4.1", |
17093 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | 17394 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", |
17094 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | 17395 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", |
17396 | "dev": true, | ||
17397 | "requires": { | ||
17398 | "prelude-ls": "^1.2.1", | ||
17399 | "type-check": "~0.4.0" | ||
17400 | } | ||
17401 | }, | ||
17402 | "optionator": { | ||
17403 | "version": "0.9.1", | ||
17404 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", | ||
17405 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", | ||
17406 | "dev": true, | ||
17407 | "requires": { | ||
17408 | "deep-is": "^0.1.3", | ||
17409 | "fast-levenshtein": "^2.0.6", | ||
17410 | "levn": "^0.4.1", | ||
17411 | "prelude-ls": "^1.2.1", | ||
17412 | "type-check": "^0.4.0", | ||
17413 | "word-wrap": "^1.2.3" | ||
17414 | } | ||
17415 | }, | ||
17416 | "path-key": { | ||
17417 | "version": "3.1.1", | ||
17418 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", | ||
17419 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", | ||
17420 | "dev": true | ||
17421 | }, | ||
17422 | "prelude-ls": { | ||
17423 | "version": "1.2.1", | ||
17424 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", | ||
17425 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", | ||
17426 | "dev": true | ||
17427 | }, | ||
17428 | "shebang-command": { | ||
17429 | "version": "2.0.0", | ||
17430 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", | ||
17431 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", | ||
17432 | "dev": true, | ||
17433 | "requires": { | ||
17434 | "shebang-regex": "^3.0.0" | ||
17435 | } | ||
17436 | }, | ||
17437 | "shebang-regex": { | ||
17438 | "version": "3.0.0", | ||
17439 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", | ||
17440 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", | ||
17095 | "dev": true | 17441 | "dev": true |
17442 | }, | ||
17443 | "strip-ansi": { | ||
17444 | "version": "6.0.0", | ||
17445 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", | ||
17446 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", | ||
17447 | "dev": true, | ||
17448 | "requires": { | ||
17449 | "ansi-regex": "^5.0.0" | ||
17450 | } | ||
17451 | }, | ||
17452 | "strip-json-comments": { | ||
17453 | "version": "3.1.1", | ||
17454 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", | ||
17455 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", | ||
17456 | "dev": true | ||
17457 | }, | ||
17458 | "type-check": { | ||
17459 | "version": "0.4.0", | ||
17460 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", | ||
17461 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", | ||
17462 | "dev": true, | ||
17463 | "requires": { | ||
17464 | "prelude-ls": "^1.2.1" | ||
17465 | } | ||
17466 | }, | ||
17467 | "type-fest": { | ||
17468 | "version": "0.20.2", | ||
17469 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", | ||
17470 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", | ||
17471 | "dev": true | ||
17472 | }, | ||
17473 | "which": { | ||
17474 | "version": "2.0.2", | ||
17475 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", | ||
17476 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", | ||
17477 | "dev": true, | ||
17478 | "requires": { | ||
17479 | "isexe": "^2.0.0" | ||
17480 | } | ||
17096 | } | 17481 | } |
17097 | } | 17482 | } |
17098 | }, | 17483 | }, |
17099 | "eslint-config-airbnb": { | 17484 | "eslint-config-airbnb": { |
17100 | "version": "17.1.1", | 17485 | "version": "18.2.1", |
17101 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz", | 17486 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz", |
17102 | "integrity": "sha512-xCu//8a/aWqagKljt+1/qAM62BYZeNq04HmdevG5yUGWpja0I/xhqd6GdLRch5oetEGFiJAnvtGuTEAese53Qg==", | 17487 | "integrity": "sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==", |
17103 | "dev": true, | 17488 | "dev": true, |
17104 | "requires": { | 17489 | "requires": { |
17105 | "eslint-config-airbnb-base": "^13.2.0", | 17490 | "eslint-config-airbnb-base": "^14.2.1", |
17106 | "object.assign": "^4.1.0", | 17491 | "object.assign": "^4.1.2", |
17107 | "object.entries": "^1.1.0" | 17492 | "object.entries": "^1.1.2" |
17493 | }, | ||
17494 | "dependencies": { | ||
17495 | "has-symbols": { | ||
17496 | "version": "1.0.2", | ||
17497 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", | ||
17498 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", | ||
17499 | "dev": true | ||
17500 | }, | ||
17501 | "object.assign": { | ||
17502 | "version": "4.1.2", | ||
17503 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", | ||
17504 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", | ||
17505 | "dev": true, | ||
17506 | "requires": { | ||
17507 | "call-bind": "^1.0.0", | ||
17508 | "define-properties": "^1.1.3", | ||
17509 | "has-symbols": "^1.0.1", | ||
17510 | "object-keys": "^1.1.1" | ||
17511 | } | ||
17512 | } | ||
17108 | } | 17513 | } |
17109 | }, | 17514 | }, |
17110 | "eslint-config-airbnb-base": { | 17515 | "eslint-config-airbnb-base": { |
17111 | "version": "13.2.0", | 17516 | "version": "14.2.1", |
17112 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz", | 17517 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", |
17113 | "integrity": "sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==", | 17518 | "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", |
17114 | "dev": true, | 17519 | "dev": true, |
17115 | "requires": { | 17520 | "requires": { |
17116 | "confusing-browser-globals": "^1.0.5", | 17521 | "confusing-browser-globals": "^1.0.10", |
17117 | "object.assign": "^4.1.0", | 17522 | "object.assign": "^4.1.2", |
17118 | "object.entries": "^1.1.0" | 17523 | "object.entries": "^1.1.2" |
17524 | }, | ||
17525 | "dependencies": { | ||
17526 | "has-symbols": { | ||
17527 | "version": "1.0.2", | ||
17528 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", | ||
17529 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", | ||
17530 | "dev": true | ||
17531 | }, | ||
17532 | "object.assign": { | ||
17533 | "version": "4.1.2", | ||
17534 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", | ||
17535 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", | ||
17536 | "dev": true, | ||
17537 | "requires": { | ||
17538 | "call-bind": "^1.0.0", | ||
17539 | "define-properties": "^1.1.3", | ||
17540 | "has-symbols": "^1.0.1", | ||
17541 | "object-keys": "^1.1.1" | ||
17542 | } | ||
17543 | } | ||
17119 | } | 17544 | } |
17120 | }, | 17545 | }, |
17121 | "eslint-import-resolver-node": { | 17546 | "eslint-import-resolver-node": { |
@@ -17340,12 +17765,12 @@ | |||
17340 | } | 17765 | } |
17341 | }, | 17766 | }, |
17342 | "eslint-plugin-jest": { | 17767 | "eslint-plugin-jest": { |
17343 | "version": "22.21.0", | 17768 | "version": "24.3.6", |
17344 | "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.21.0.tgz", | 17769 | "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz", |
17345 | "integrity": "sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew==", | 17770 | "integrity": "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg==", |
17346 | "dev": true, | 17771 | "dev": true, |
17347 | "requires": { | 17772 | "requires": { |
17348 | "@typescript-eslint/experimental-utils": "^1.13.0" | 17773 | "@typescript-eslint/experimental-utils": "^4.0.1" |
17349 | } | 17774 | } |
17350 | }, | 17775 | }, |
17351 | "eslint-plugin-jsx-a11y": { | 17776 | "eslint-plugin-jsx-a11y": { |
@@ -17442,18 +17867,26 @@ | |||
17442 | } | 17867 | } |
17443 | }, | 17868 | }, |
17444 | "eslint-utils": { | 17869 | "eslint-utils": { |
17445 | "version": "1.4.3", | 17870 | "version": "2.1.0", |
17446 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", | 17871 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", |
17447 | "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", | 17872 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", |
17448 | "dev": true, | 17873 | "dev": true, |
17449 | "requires": { | 17874 | "requires": { |
17450 | "eslint-visitor-keys": "^1.1.0" | 17875 | "eslint-visitor-keys": "^1.1.0" |
17876 | }, | ||
17877 | "dependencies": { | ||
17878 | "eslint-visitor-keys": { | ||
17879 | "version": "1.3.0", | ||
17880 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | ||
17881 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | ||
17882 | "dev": true | ||
17883 | } | ||
17451 | } | 17884 | } |
17452 | }, | 17885 | }, |
17453 | "eslint-visitor-keys": { | 17886 | "eslint-visitor-keys": { |
17454 | "version": "1.1.0", | 17887 | "version": "2.1.0", |
17455 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", | 17888 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", |
17456 | "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", | 17889 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", |
17457 | "dev": true | 17890 | "dev": true |
17458 | }, | 17891 | }, |
17459 | "eslint-webpack-plugin": { | 17892 | "eslint-webpack-plugin": { |
@@ -17571,14 +18004,22 @@ | |||
17571 | } | 18004 | } |
17572 | }, | 18005 | }, |
17573 | "espree": { | 18006 | "espree": { |
17574 | "version": "5.0.1", | 18007 | "version": "7.3.1", |
17575 | "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", | 18008 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", |
17576 | "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", | 18009 | "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", |
17577 | "dev": true, | 18010 | "dev": true, |
17578 | "requires": { | 18011 | "requires": { |
17579 | "acorn": "^6.0.7", | 18012 | "acorn": "^7.4.0", |
17580 | "acorn-jsx": "^5.0.0", | 18013 | "acorn-jsx": "^5.3.1", |
17581 | "eslint-visitor-keys": "^1.0.0" | 18014 | "eslint-visitor-keys": "^1.3.0" |
18015 | }, | ||
18016 | "dependencies": { | ||
18017 | "eslint-visitor-keys": { | ||
18018 | "version": "1.3.0", | ||
18019 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | ||
18020 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | ||
18021 | "dev": true | ||
18022 | } | ||
17582 | } | 18023 | } |
17583 | }, | 18024 | }, |
17584 | "esprima": { | 18025 | "esprima": { |
@@ -18047,6 +18488,12 @@ | |||
18047 | "time-stamp": "^1.0.0" | 18488 | "time-stamp": "^1.0.0" |
18048 | } | 18489 | } |
18049 | }, | 18490 | }, |
18491 | "fast-deep-equal": { | ||
18492 | "version": "3.1.3", | ||
18493 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", | ||
18494 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", | ||
18495 | "dev": true | ||
18496 | }, | ||
18050 | "fast-glob": { | 18497 | "fast-glob": { |
18051 | "version": "3.2.5", | 18498 | "version": "3.2.5", |
18052 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", | 18499 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", |
@@ -18185,22 +18632,13 @@ | |||
18185 | "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", | 18632 | "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", |
18186 | "dev": true | 18633 | "dev": true |
18187 | }, | 18634 | }, |
18188 | "figures": { | ||
18189 | "version": "2.0.0", | ||
18190 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", | ||
18191 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", | ||
18192 | "dev": true, | ||
18193 | "requires": { | ||
18194 | "escape-string-regexp": "^1.0.5" | ||
18195 | } | ||
18196 | }, | ||
18197 | "file-entry-cache": { | 18635 | "file-entry-cache": { |
18198 | "version": "5.0.1", | 18636 | "version": "6.0.1", |
18199 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", | 18637 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", |
18200 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", | 18638 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", |
18201 | "dev": true, | 18639 | "dev": true, |
18202 | "requires": { | 18640 | "requires": { |
18203 | "flat-cache": "^2.0.1" | 18641 | "flat-cache": "^3.0.4" |
18204 | } | 18642 | } |
18205 | }, | 18643 | }, |
18206 | "file-selector": { | 18644 | "file-selector": { |
@@ -18373,20 +18811,30 @@ | |||
18373 | "dev": true | 18811 | "dev": true |
18374 | }, | 18812 | }, |
18375 | "flat-cache": { | 18813 | "flat-cache": { |
18376 | "version": "2.0.1", | 18814 | "version": "3.0.4", |
18377 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", | 18815 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", |
18378 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", | 18816 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", |
18379 | "dev": true, | 18817 | "dev": true, |
18380 | "requires": { | 18818 | "requires": { |
18381 | "flatted": "^2.0.0", | 18819 | "flatted": "^3.1.0", |
18382 | "rimraf": "2.6.3", | 18820 | "rimraf": "^3.0.2" |
18383 | "write": "1.0.3" | 18821 | }, |
18822 | "dependencies": { | ||
18823 | "rimraf": { | ||
18824 | "version": "3.0.2", | ||
18825 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", | ||
18826 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", | ||
18827 | "dev": true, | ||
18828 | "requires": { | ||
18829 | "glob": "^7.1.3" | ||
18830 | } | ||
18831 | } | ||
18384 | } | 18832 | } |
18385 | }, | 18833 | }, |
18386 | "flatted": { | 18834 | "flatted": { |
18387 | "version": "2.0.2", | 18835 | "version": "3.1.1", |
18388 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", | 18836 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", |
18389 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", | 18837 | "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", |
18390 | "dev": true | 18838 | "dev": true |
18391 | }, | 18839 | }, |
18392 | "flush-write-stream": { | 18840 | "flush-write-stream": { |
@@ -22516,44 +22964,6 @@ | |||
22516 | } | 22964 | } |
22517 | } | 22965 | } |
22518 | }, | 22966 | }, |
22519 | "inquirer": { | ||
22520 | "version": "6.5.2", | ||
22521 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", | ||
22522 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", | ||
22523 | "dev": true, | ||
22524 | "requires": { | ||
22525 | "ansi-escapes": "^3.2.0", | ||
22526 | "chalk": "^2.4.2", | ||
22527 | "cli-cursor": "^2.1.0", | ||
22528 | "cli-width": "^2.0.0", | ||
22529 | "external-editor": "^3.0.3", | ||
22530 | "figures": "^2.0.0", | ||
22531 | "lodash": "^4.17.12", | ||
22532 | "mute-stream": "0.0.7", | ||
22533 | "run-async": "^2.2.0", | ||
22534 | "rxjs": "^6.4.0", | ||
22535 | "string-width": "^2.1.0", | ||
22536 | "strip-ansi": "^5.1.0", | ||
22537 | "through": "^2.3.6" | ||
22538 | }, | ||
22539 | "dependencies": { | ||
22540 | "ansi-regex": { | ||
22541 | "version": "4.1.0", | ||
22542 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
22543 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
22544 | "dev": true | ||
22545 | }, | ||
22546 | "strip-ansi": { | ||
22547 | "version": "5.2.0", | ||
22548 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
22549 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
22550 | "dev": true, | ||
22551 | "requires": { | ||
22552 | "ansi-regex": "^4.1.0" | ||
22553 | } | ||
22554 | } | ||
22555 | } | ||
22556 | }, | ||
22557 | "internal-ip": { | 22967 | "internal-ip": { |
22558 | "version": "4.3.0", | 22968 | "version": "4.3.0", |
22559 | "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", | 22969 | "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", |
@@ -26215,6 +26625,12 @@ | |||
26215 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", | 26625 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", |
26216 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" | 26626 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" |
26217 | }, | 26627 | }, |
26628 | "lodash.clonedeep": { | ||
26629 | "version": "4.5.0", | ||
26630 | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", | ||
26631 | "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", | ||
26632 | "dev": true | ||
26633 | }, | ||
26218 | "lodash.debounce": { | 26634 | "lodash.debounce": { |
26219 | "version": "4.0.8", | 26635 | "version": "4.0.8", |
26220 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", | 26636 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", |
@@ -26273,6 +26689,12 @@ | |||
26273 | "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", | 26689 | "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", |
26274 | "dev": true | 26690 | "dev": true |
26275 | }, | 26691 | }, |
26692 | "lodash.merge": { | ||
26693 | "version": "4.6.2", | ||
26694 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", | ||
26695 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", | ||
26696 | "dev": true | ||
26697 | }, | ||
26276 | "lodash.once": { | 26698 | "lodash.once": { |
26277 | "version": "4.1.1", | 26699 | "version": "4.1.1", |
26278 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", | 26700 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", |
@@ -26297,10 +26719,10 @@ | |||
26297 | "lodash._reinterpolate": "^3.0.0" | 26719 | "lodash._reinterpolate": "^3.0.0" |
26298 | } | 26720 | } |
26299 | }, | 26721 | }, |
26300 | "lodash.unescape": { | 26722 | "lodash.truncate": { |
26301 | "version": "4.0.1", | 26723 | "version": "4.4.2", |
26302 | "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", | 26724 | "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", |
26303 | "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", | 26725 | "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", |
26304 | "dev": true | 26726 | "dev": true |
26305 | }, | 26727 | }, |
26306 | "log-ok": { | 26728 | "log-ok": { |
@@ -28702,443 +29124,6 @@ | |||
28702 | } | 29124 | } |
28703 | } | 29125 | } |
28704 | }, | 29126 | }, |
28705 | "node-sass": { | ||
28706 | "version": "5.0.0", | ||
28707 | "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-5.0.0.tgz", | ||
28708 | "integrity": "sha512-opNgmlu83ZCF792U281Ry7tak9IbVC+AKnXGovcQ8LG8wFaJv6cLnRlc6DIHlmNxWEexB5bZxi9SZ9JyUuOYjw==", | ||
28709 | "dev": true, | ||
28710 | "requires": { | ||
28711 | "async-foreach": "^0.1.3", | ||
28712 | "chalk": "^1.1.1", | ||
28713 | "cross-spawn": "^7.0.3", | ||
28714 | "gaze": "^1.0.0", | ||
28715 | "get-stdin": "^4.0.1", | ||
28716 | "glob": "^7.0.3", | ||
28717 | "lodash": "^4.17.15", | ||
28718 | "meow": "^3.7.0", | ||
28719 | "mkdirp": "^0.5.1", | ||
28720 | "nan": "^2.13.2", | ||
28721 | "node-gyp": "^7.1.0", | ||
28722 | "npmlog": "^4.0.0", | ||
28723 | "request": "^2.88.0", | ||
28724 | "sass-graph": "2.2.5", | ||
28725 | "stdout-stream": "^1.4.0", | ||
28726 | "true-case-path": "^1.0.2" | ||
28727 | }, | ||
28728 | "dependencies": { | ||
28729 | "ansi-regex": { | ||
28730 | "version": "2.1.1", | ||
28731 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | ||
28732 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", | ||
28733 | "dev": true | ||
28734 | }, | ||
28735 | "ansi-styles": { | ||
28736 | "version": "2.2.1", | ||
28737 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", | ||
28738 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", | ||
28739 | "dev": true | ||
28740 | }, | ||
28741 | "camelcase": { | ||
28742 | "version": "2.1.1", | ||
28743 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", | ||
28744 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", | ||
28745 | "dev": true | ||
28746 | }, | ||
28747 | "camelcase-keys": { | ||
28748 | "version": "2.1.0", | ||
28749 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", | ||
28750 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", | ||
28751 | "dev": true, | ||
28752 | "requires": { | ||
28753 | "camelcase": "^2.0.0", | ||
28754 | "map-obj": "^1.0.0" | ||
28755 | } | ||
28756 | }, | ||
28757 | "chalk": { | ||
28758 | "version": "1.1.3", | ||
28759 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", | ||
28760 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", | ||
28761 | "dev": true, | ||
28762 | "requires": { | ||
28763 | "ansi-styles": "^2.2.1", | ||
28764 | "escape-string-regexp": "^1.0.2", | ||
28765 | "has-ansi": "^2.0.0", | ||
28766 | "strip-ansi": "^3.0.0", | ||
28767 | "supports-color": "^2.0.0" | ||
28768 | } | ||
28769 | }, | ||
28770 | "chownr": { | ||
28771 | "version": "2.0.0", | ||
28772 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", | ||
28773 | "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", | ||
28774 | "dev": true | ||
28775 | }, | ||
28776 | "cross-spawn": { | ||
28777 | "version": "7.0.3", | ||
28778 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", | ||
28779 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", | ||
28780 | "dev": true, | ||
28781 | "requires": { | ||
28782 | "path-key": "^3.1.0", | ||
28783 | "shebang-command": "^2.0.0", | ||
28784 | "which": "^2.0.1" | ||
28785 | } | ||
28786 | }, | ||
28787 | "find-up": { | ||
28788 | "version": "1.1.2", | ||
28789 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", | ||
28790 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", | ||
28791 | "dev": true, | ||
28792 | "requires": { | ||
28793 | "path-exists": "^2.0.0", | ||
28794 | "pinkie-promise": "^2.0.0" | ||
28795 | } | ||
28796 | }, | ||
28797 | "fs-minipass": { | ||
28798 | "version": "2.1.0", | ||
28799 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", | ||
28800 | "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", | ||
28801 | "dev": true, | ||
28802 | "requires": { | ||
28803 | "minipass": "^3.0.0" | ||
28804 | } | ||
28805 | }, | ||
28806 | "indent-string": { | ||
28807 | "version": "2.1.0", | ||
28808 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", | ||
28809 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", | ||
28810 | "dev": true, | ||
28811 | "requires": { | ||
28812 | "repeating": "^2.0.0" | ||
28813 | } | ||
28814 | }, | ||
28815 | "load-json-file": { | ||
28816 | "version": "1.1.0", | ||
28817 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", | ||
28818 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", | ||
28819 | "dev": true, | ||
28820 | "requires": { | ||
28821 | "graceful-fs": "^4.1.2", | ||
28822 | "parse-json": "^2.2.0", | ||
28823 | "pify": "^2.0.0", | ||
28824 | "pinkie-promise": "^2.0.0", | ||
28825 | "strip-bom": "^2.0.0" | ||
28826 | } | ||
28827 | }, | ||
28828 | "lru-cache": { | ||
28829 | "version": "6.0.0", | ||
28830 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | ||
28831 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", | ||
28832 | "dev": true, | ||
28833 | "requires": { | ||
28834 | "yallist": "^4.0.0" | ||
28835 | } | ||
28836 | }, | ||
28837 | "map-obj": { | ||
28838 | "version": "1.0.1", | ||
28839 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", | ||
28840 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", | ||
28841 | "dev": true | ||
28842 | }, | ||
28843 | "meow": { | ||
28844 | "version": "3.7.0", | ||
28845 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", | ||
28846 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", | ||
28847 | "dev": true, | ||
28848 | "requires": { | ||
28849 | "camelcase-keys": "^2.0.0", | ||
28850 | "decamelize": "^1.1.2", | ||
28851 | "loud-rejection": "^1.0.0", | ||
28852 | "map-obj": "^1.0.1", | ||
28853 | "minimist": "^1.1.3", | ||
28854 | "normalize-package-data": "^2.3.4", | ||
28855 | "object-assign": "^4.0.1", | ||
28856 | "read-pkg-up": "^1.0.1", | ||
28857 | "redent": "^1.0.0", | ||
28858 | "trim-newlines": "^1.0.0" | ||
28859 | } | ||
28860 | }, | ||
28861 | "minimist": { | ||
28862 | "version": "1.2.5", | ||
28863 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | ||
28864 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", | ||
28865 | "dev": true | ||
28866 | }, | ||
28867 | "minipass": { | ||
28868 | "version": "3.1.3", | ||
28869 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", | ||
28870 | "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", | ||
28871 | "dev": true, | ||
28872 | "requires": { | ||
28873 | "yallist": "^4.0.0" | ||
28874 | } | ||
28875 | }, | ||
28876 | "minizlib": { | ||
28877 | "version": "2.1.2", | ||
28878 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", | ||
28879 | "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", | ||
28880 | "dev": true, | ||
28881 | "requires": { | ||
28882 | "minipass": "^3.0.0", | ||
28883 | "yallist": "^4.0.0" | ||
28884 | } | ||
28885 | }, | ||
28886 | "node-gyp": { | ||
28887 | "version": "7.1.2", | ||
28888 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", | ||
28889 | "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", | ||
28890 | "dev": true, | ||
28891 | "requires": { | ||
28892 | "env-paths": "^2.2.0", | ||
28893 | "glob": "^7.1.4", | ||
28894 | "graceful-fs": "^4.2.3", | ||
28895 | "nopt": "^5.0.0", | ||
28896 | "npmlog": "^4.1.2", | ||
28897 | "request": "^2.88.2", | ||
28898 | "rimraf": "^3.0.2", | ||
28899 | "semver": "^7.3.2", | ||
28900 | "tar": "^6.0.2", | ||
28901 | "which": "^2.0.2" | ||
28902 | }, | ||
28903 | "dependencies": { | ||
28904 | "graceful-fs": { | ||
28905 | "version": "4.2.6", | ||
28906 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", | ||
28907 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", | ||
28908 | "dev": true | ||
28909 | }, | ||
28910 | "request": { | ||
28911 | "version": "2.88.2", | ||
28912 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", | ||
28913 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", | ||
28914 | "dev": true, | ||
28915 | "requires": { | ||
28916 | "aws-sign2": "~0.7.0", | ||
28917 | "aws4": "^1.8.0", | ||
28918 | "caseless": "~0.12.0", | ||
28919 | "combined-stream": "~1.0.6", | ||
28920 | "extend": "~3.0.2", | ||
28921 | "forever-agent": "~0.6.1", | ||
28922 | "form-data": "~2.3.2", | ||
28923 | "har-validator": "~5.1.3", | ||
28924 | "http-signature": "~1.2.0", | ||
28925 | "is-typedarray": "~1.0.0", | ||
28926 | "isstream": "~0.1.2", | ||
28927 | "json-stringify-safe": "~5.0.1", | ||
28928 | "mime-types": "~2.1.19", | ||
28929 | "oauth-sign": "~0.9.0", | ||
28930 | "performance-now": "^2.1.0", | ||
28931 | "qs": "~6.5.2", | ||
28932 | "safe-buffer": "^5.1.2", | ||
28933 | "tough-cookie": "~2.5.0", | ||
28934 | "tunnel-agent": "^0.6.0", | ||
28935 | "uuid": "^3.3.2" | ||
28936 | } | ||
28937 | } | ||
28938 | } | ||
28939 | }, | ||
28940 | "nopt": { | ||
28941 | "version": "5.0.0", | ||
28942 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", | ||
28943 | "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", | ||
28944 | "dev": true, | ||
28945 | "requires": { | ||
28946 | "abbrev": "1" | ||
28947 | } | ||
28948 | }, | ||
28949 | "parse-json": { | ||
28950 | "version": "2.2.0", | ||
28951 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", | ||
28952 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", | ||
28953 | "dev": true, | ||
28954 | "requires": { | ||
28955 | "error-ex": "^1.2.0" | ||
28956 | } | ||
28957 | }, | ||
28958 | "path-exists": { | ||
28959 | "version": "2.1.0", | ||
28960 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", | ||
28961 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", | ||
28962 | "dev": true, | ||
28963 | "requires": { | ||
28964 | "pinkie-promise": "^2.0.0" | ||
28965 | } | ||
28966 | }, | ||
28967 | "path-key": { | ||
28968 | "version": "3.1.1", | ||
28969 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", | ||
28970 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", | ||
28971 | "dev": true | ||
28972 | }, | ||
28973 | "path-type": { | ||
28974 | "version": "1.1.0", | ||
28975 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", | ||
28976 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", | ||
28977 | "dev": true, | ||
28978 | "requires": { | ||
28979 | "graceful-fs": "^4.1.2", | ||
28980 | "pify": "^2.0.0", | ||
28981 | "pinkie-promise": "^2.0.0" | ||
28982 | } | ||
28983 | }, | ||
28984 | "pify": { | ||
28985 | "version": "2.3.0", | ||
28986 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", | ||
28987 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", | ||
28988 | "dev": true | ||
28989 | }, | ||
28990 | "read-pkg": { | ||
28991 | "version": "1.1.0", | ||
28992 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", | ||
28993 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", | ||
28994 | "dev": true, | ||
28995 | "requires": { | ||
28996 | "load-json-file": "^1.0.0", | ||
28997 | "normalize-package-data": "^2.3.2", | ||
28998 | "path-type": "^1.0.0" | ||
28999 | } | ||
29000 | }, | ||
29001 | "read-pkg-up": { | ||
29002 | "version": "1.0.1", | ||
29003 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", | ||
29004 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", | ||
29005 | "dev": true, | ||
29006 | "requires": { | ||
29007 | "find-up": "^1.0.0", | ||
29008 | "read-pkg": "^1.0.0" | ||
29009 | } | ||
29010 | }, | ||
29011 | "redent": { | ||
29012 | "version": "1.0.0", | ||
29013 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", | ||
29014 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", | ||
29015 | "dev": true, | ||
29016 | "requires": { | ||
29017 | "indent-string": "^2.1.0", | ||
29018 | "strip-indent": "^1.0.1" | ||
29019 | } | ||
29020 | }, | ||
29021 | "rimraf": { | ||
29022 | "version": "3.0.2", | ||
29023 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", | ||
29024 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", | ||
29025 | "dev": true, | ||
29026 | "requires": { | ||
29027 | "glob": "^7.1.3" | ||
29028 | } | ||
29029 | }, | ||
29030 | "semver": { | ||
29031 | "version": "7.3.5", | ||
29032 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", | ||
29033 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", | ||
29034 | "dev": true, | ||
29035 | "requires": { | ||
29036 | "lru-cache": "^6.0.0" | ||
29037 | } | ||
29038 | }, | ||
29039 | "shebang-command": { | ||
29040 | "version": "2.0.0", | ||
29041 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", | ||
29042 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", | ||
29043 | "dev": true, | ||
29044 | "requires": { | ||
29045 | "shebang-regex": "^3.0.0" | ||
29046 | } | ||
29047 | }, | ||
29048 | "shebang-regex": { | ||
29049 | "version": "3.0.0", | ||
29050 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", | ||
29051 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", | ||
29052 | "dev": true | ||
29053 | }, | ||
29054 | "strip-ansi": { | ||
29055 | "version": "3.0.1", | ||
29056 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | ||
29057 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", | ||
29058 | "dev": true, | ||
29059 | "requires": { | ||
29060 | "ansi-regex": "^2.0.0" | ||
29061 | } | ||
29062 | }, | ||
29063 | "strip-bom": { | ||
29064 | "version": "2.0.0", | ||
29065 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", | ||
29066 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", | ||
29067 | "dev": true, | ||
29068 | "requires": { | ||
29069 | "is-utf8": "^0.2.0" | ||
29070 | } | ||
29071 | }, | ||
29072 | "strip-indent": { | ||
29073 | "version": "1.0.1", | ||
29074 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", | ||
29075 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", | ||
29076 | "dev": true, | ||
29077 | "requires": { | ||
29078 | "get-stdin": "^4.0.1" | ||
29079 | } | ||
29080 | }, | ||
29081 | "supports-color": { | ||
29082 | "version": "2.0.0", | ||
29083 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", | ||
29084 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", | ||
29085 | "dev": true | ||
29086 | }, | ||
29087 | "tar": { | ||
29088 | "version": "6.1.0", | ||
29089 | "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", | ||
29090 | "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", | ||
29091 | "dev": true, | ||
29092 | "requires": { | ||
29093 | "chownr": "^2.0.0", | ||
29094 | "fs-minipass": "^2.0.0", | ||
29095 | "minipass": "^3.0.0", | ||
29096 | "minizlib": "^2.1.1", | ||
29097 | "mkdirp": "^1.0.3", | ||
29098 | "yallist": "^4.0.0" | ||
29099 | }, | ||
29100 | "dependencies": { | ||
29101 | "mkdirp": { | ||
29102 | "version": "1.0.4", | ||
29103 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", | ||
29104 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", | ||
29105 | "dev": true | ||
29106 | } | ||
29107 | } | ||
29108 | }, | ||
29109 | "tough-cookie": { | ||
29110 | "version": "2.5.0", | ||
29111 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", | ||
29112 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", | ||
29113 | "dev": true, | ||
29114 | "requires": { | ||
29115 | "psl": "^1.1.28", | ||
29116 | "punycode": "^2.1.1" | ||
29117 | } | ||
29118 | }, | ||
29119 | "trim-newlines": { | ||
29120 | "version": "1.0.0", | ||
29121 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", | ||
29122 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", | ||
29123 | "dev": true | ||
29124 | }, | ||
29125 | "which": { | ||
29126 | "version": "2.0.2", | ||
29127 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", | ||
29128 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", | ||
29129 | "dev": true, | ||
29130 | "requires": { | ||
29131 | "isexe": "^2.0.0" | ||
29132 | } | ||
29133 | }, | ||
29134 | "yallist": { | ||
29135 | "version": "4.0.0", | ||
29136 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", | ||
29137 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", | ||
29138 | "dev": true | ||
29139 | } | ||
29140 | } | ||
29141 | }, | ||
29142 | "nopt": { | 29127 | "nopt": { |
29143 | "version": "3.0.6", | 29128 | "version": "3.0.6", |
29144 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", | 29129 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", |
@@ -29907,23 +29892,6 @@ | |||
29907 | "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", | 29892 | "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", |
29908 | "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=" | 29893 | "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=" |
29909 | }, | 29894 | }, |
29910 | "onetime": { | ||
29911 | "version": "2.0.1", | ||
29912 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", | ||
29913 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", | ||
29914 | "dev": true, | ||
29915 | "requires": { | ||
29916 | "mimic-fn": "^1.0.0" | ||
29917 | }, | ||
29918 | "dependencies": { | ||
29919 | "mimic-fn": { | ||
29920 | "version": "1.2.0", | ||
29921 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", | ||
29922 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", | ||
29923 | "dev": true | ||
29924 | } | ||
29925 | } | ||
29926 | }, | ||
29927 | "opn": { | 29895 | "opn": { |
29928 | "version": "5.5.0", | 29896 | "version": "5.5.0", |
29929 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", | 29897 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", |
@@ -32667,9 +32635,9 @@ | |||
32667 | } | 32635 | } |
32668 | }, | 32636 | }, |
32669 | "regexpp": { | 32637 | "regexpp": { |
32670 | "version": "2.0.1", | 32638 | "version": "3.2.0", |
32671 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", | 32639 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", |
32672 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", | 32640 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", |
32673 | "dev": true | 32641 | "dev": true |
32674 | }, | 32642 | }, |
32675 | "regexpu-core": { | 32643 | "regexpu-core": { |
@@ -32915,6 +32883,12 @@ | |||
32915 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", | 32883 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", |
32916 | "dev": true | 32884 | "dev": true |
32917 | }, | 32885 | }, |
32886 | "require-from-string": { | ||
32887 | "version": "2.0.2", | ||
32888 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", | ||
32889 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", | ||
32890 | "dev": true | ||
32891 | }, | ||
32918 | "require-main-filename": { | 32892 | "require-main-filename": { |
32919 | "version": "1.0.1", | 32893 | "version": "1.0.1", |
32920 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", | 32894 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", |
@@ -33027,16 +33001,6 @@ | |||
33027 | "lowercase-keys": "^1.0.0" | 33001 | "lowercase-keys": "^1.0.0" |
33028 | } | 33002 | } |
33029 | }, | 33003 | }, |
33030 | "restore-cursor": { | ||
33031 | "version": "2.0.0", | ||
33032 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", | ||
33033 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", | ||
33034 | "dev": true, | ||
33035 | "requires": { | ||
33036 | "onetime": "^2.0.0", | ||
33037 | "signal-exit": "^3.0.2" | ||
33038 | } | ||
33039 | }, | ||
33040 | "ret": { | 33004 | "ret": { |
33041 | "version": "0.1.15", | 33005 | "version": "0.1.15", |
33042 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", | 33006 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", |
@@ -33112,12 +33076,6 @@ | |||
33112 | "resolved": "https://registry.npmjs.org/route-parser/-/route-parser-0.0.5.tgz", | 33076 | "resolved": "https://registry.npmjs.org/route-parser/-/route-parser-0.0.5.tgz", |
33113 | "integrity": "sha1-fR0J0zXkkJQDHqFpkaSnmwG74fQ=" | 33077 | "integrity": "sha1-fR0J0zXkkJQDHqFpkaSnmwG74fQ=" |
33114 | }, | 33078 | }, |
33115 | "run-async": { | ||
33116 | "version": "2.4.1", | ||
33117 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", | ||
33118 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", | ||
33119 | "dev": true | ||
33120 | }, | ||
33121 | "run-parallel": { | 33079 | "run-parallel": { |
33122 | "version": "1.2.0", | 33080 | "version": "1.2.0", |
33123 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", | 33081 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", |
@@ -33184,6 +33142,122 @@ | |||
33184 | "truncate-utf8-bytes": "^1.0.0" | 33142 | "truncate-utf8-bytes": "^1.0.0" |
33185 | } | 33143 | } |
33186 | }, | 33144 | }, |
33145 | "sass": { | ||
33146 | "version": "1.35.1", | ||
33147 | "resolved": "https://registry.npmjs.org/sass/-/sass-1.35.1.tgz", | ||
33148 | "integrity": "sha512-oCisuQJstxMcacOPmxLNiLlj4cUyN2+8xJnG7VanRoh2GOLr9RqkvI4AxA4a6LHVg/rsu+PmxXeGhrdSF9jCiQ==", | ||
33149 | "dev": true, | ||
33150 | "requires": { | ||
33151 | "chokidar": ">=3.0.0 <4.0.0" | ||
33152 | }, | ||
33153 | "dependencies": { | ||
33154 | "anymatch": { | ||
33155 | "version": "3.1.2", | ||
33156 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", | ||
33157 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", | ||
33158 | "dev": true, | ||
33159 | "requires": { | ||
33160 | "normalize-path": "^3.0.0", | ||
33161 | "picomatch": "^2.0.4" | ||
33162 | } | ||
33163 | }, | ||
33164 | "binary-extensions": { | ||
33165 | "version": "2.2.0", | ||
33166 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", | ||
33167 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", | ||
33168 | "dev": true | ||
33169 | }, | ||
33170 | "braces": { | ||
33171 | "version": "3.0.2", | ||
33172 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", | ||
33173 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", | ||
33174 | "dev": true, | ||
33175 | "requires": { | ||
33176 | "fill-range": "^7.0.1" | ||
33177 | } | ||
33178 | }, | ||
33179 | "chokidar": { | ||
33180 | "version": "3.5.2", | ||
33181 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", | ||
33182 | "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", | ||
33183 | "dev": true, | ||
33184 | "requires": { | ||
33185 | "anymatch": "~3.1.2", | ||
33186 | "braces": "~3.0.2", | ||
33187 | "fsevents": "~2.3.2", | ||
33188 | "glob-parent": "~5.1.2", | ||
33189 | "is-binary-path": "~2.1.0", | ||
33190 | "is-glob": "~4.0.1", | ||
33191 | "normalize-path": "~3.0.0", | ||
33192 | "readdirp": "~3.6.0" | ||
33193 | } | ||
33194 | }, | ||
33195 | "fill-range": { | ||
33196 | "version": "7.0.1", | ||
33197 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", | ||
33198 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", | ||
33199 | "dev": true, | ||
33200 | "requires": { | ||
33201 | "to-regex-range": "^5.0.1" | ||
33202 | } | ||
33203 | }, | ||
33204 | "fsevents": { | ||
33205 | "version": "2.3.2", | ||
33206 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", | ||
33207 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", | ||
33208 | "dev": true, | ||
33209 | "optional": true | ||
33210 | }, | ||
33211 | "glob-parent": { | ||
33212 | "version": "5.1.2", | ||
33213 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", | ||
33214 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", | ||
33215 | "dev": true, | ||
33216 | "requires": { | ||
33217 | "is-glob": "^4.0.1" | ||
33218 | } | ||
33219 | }, | ||
33220 | "is-binary-path": { | ||
33221 | "version": "2.1.0", | ||
33222 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", | ||
33223 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", | ||
33224 | "dev": true, | ||
33225 | "requires": { | ||
33226 | "binary-extensions": "^2.0.0" | ||
33227 | } | ||
33228 | }, | ||
33229 | "is-number": { | ||
33230 | "version": "7.0.0", | ||
33231 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", | ||
33232 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", | ||
33233 | "dev": true | ||
33234 | }, | ||
33235 | "normalize-path": { | ||
33236 | "version": "3.0.0", | ||
33237 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", | ||
33238 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", | ||
33239 | "dev": true | ||
33240 | }, | ||
33241 | "readdirp": { | ||
33242 | "version": "3.6.0", | ||
33243 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", | ||
33244 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", | ||
33245 | "dev": true, | ||
33246 | "requires": { | ||
33247 | "picomatch": "^2.2.1" | ||
33248 | } | ||
33249 | }, | ||
33250 | "to-regex-range": { | ||
33251 | "version": "5.0.1", | ||
33252 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", | ||
33253 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", | ||
33254 | "dev": true, | ||
33255 | "requires": { | ||
33256 | "is-number": "^7.0.0" | ||
33257 | } | ||
33258 | } | ||
33259 | } | ||
33260 | }, | ||
33187 | "sass-graph": { | 33261 | "sass-graph": { |
33188 | "version": "2.2.5", | 33262 | "version": "2.2.5", |
33189 | "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", | 33263 | "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", |
@@ -33700,14 +33774,46 @@ | |||
33700 | "dev": true | 33774 | "dev": true |
33701 | }, | 33775 | }, |
33702 | "slice-ansi": { | 33776 | "slice-ansi": { |
33703 | "version": "2.1.0", | 33777 | "version": "4.0.0", |
33704 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", | 33778 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", |
33705 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", | 33779 | "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", |
33706 | "dev": true, | 33780 | "dev": true, |
33707 | "requires": { | 33781 | "requires": { |
33708 | "ansi-styles": "^3.2.0", | 33782 | "ansi-styles": "^4.0.0", |
33709 | "astral-regex": "^1.0.0", | 33783 | "astral-regex": "^2.0.0", |
33710 | "is-fullwidth-code-point": "^2.0.0" | 33784 | "is-fullwidth-code-point": "^3.0.0" |
33785 | }, | ||
33786 | "dependencies": { | ||
33787 | "ansi-styles": { | ||
33788 | "version": "4.3.0", | ||
33789 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", | ||
33790 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", | ||
33791 | "dev": true, | ||
33792 | "requires": { | ||
33793 | "color-convert": "^2.0.1" | ||
33794 | } | ||
33795 | }, | ||
33796 | "color-convert": { | ||
33797 | "version": "2.0.1", | ||
33798 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||
33799 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||
33800 | "dev": true, | ||
33801 | "requires": { | ||
33802 | "color-name": "~1.1.4" | ||
33803 | } | ||
33804 | }, | ||
33805 | "color-name": { | ||
33806 | "version": "1.1.4", | ||
33807 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||
33808 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||
33809 | "dev": true | ||
33810 | }, | ||
33811 | "is-fullwidth-code-point": { | ||
33812 | "version": "3.0.0", | ||
33813 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | ||
33814 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | ||
33815 | "dev": true | ||
33816 | } | ||
33711 | } | 33817 | } |
33712 | }, | 33818 | }, |
33713 | "slide": { | 33819 | "slide": { |
@@ -34854,41 +34960,73 @@ | |||
34854 | } | 34960 | } |
34855 | }, | 34961 | }, |
34856 | "table": { | 34962 | "table": { |
34857 | "version": "5.4.6", | 34963 | "version": "6.7.1", |
34858 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", | 34964 | "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", |
34859 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", | 34965 | "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", |
34860 | "dev": true, | 34966 | "dev": true, |
34861 | "requires": { | 34967 | "requires": { |
34862 | "ajv": "^6.10.2", | 34968 | "ajv": "^8.0.1", |
34863 | "lodash": "^4.17.14", | 34969 | "lodash.clonedeep": "^4.5.0", |
34864 | "slice-ansi": "^2.1.0", | 34970 | "lodash.truncate": "^4.4.2", |
34865 | "string-width": "^3.0.0" | 34971 | "slice-ansi": "^4.0.0", |
34972 | "string-width": "^4.2.0", | ||
34973 | "strip-ansi": "^6.0.0" | ||
34866 | }, | 34974 | }, |
34867 | "dependencies": { | 34975 | "dependencies": { |
34976 | "ajv": { | ||
34977 | "version": "8.6.0", | ||
34978 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", | ||
34979 | "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", | ||
34980 | "dev": true, | ||
34981 | "requires": { | ||
34982 | "fast-deep-equal": "^3.1.1", | ||
34983 | "json-schema-traverse": "^1.0.0", | ||
34984 | "require-from-string": "^2.0.2", | ||
34985 | "uri-js": "^4.2.2" | ||
34986 | } | ||
34987 | }, | ||
34868 | "ansi-regex": { | 34988 | "ansi-regex": { |
34869 | "version": "4.1.0", | 34989 | "version": "5.0.0", |
34870 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | 34990 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", |
34871 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | 34991 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", |
34992 | "dev": true | ||
34993 | }, | ||
34994 | "emoji-regex": { | ||
34995 | "version": "8.0.0", | ||
34996 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", | ||
34997 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", | ||
34998 | "dev": true | ||
34999 | }, | ||
35000 | "is-fullwidth-code-point": { | ||
35001 | "version": "3.0.0", | ||
35002 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | ||
35003 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | ||
35004 | "dev": true | ||
35005 | }, | ||
35006 | "json-schema-traverse": { | ||
35007 | "version": "1.0.0", | ||
35008 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", | ||
35009 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", | ||
34872 | "dev": true | 35010 | "dev": true |
34873 | }, | 35011 | }, |
34874 | "string-width": { | 35012 | "string-width": { |
34875 | "version": "3.1.0", | 35013 | "version": "4.2.2", |
34876 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | 35014 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", |
34877 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | 35015 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", |
34878 | "dev": true, | 35016 | "dev": true, |
34879 | "requires": { | 35017 | "requires": { |
34880 | "emoji-regex": "^7.0.1", | 35018 | "emoji-regex": "^8.0.0", |
34881 | "is-fullwidth-code-point": "^2.0.0", | 35019 | "is-fullwidth-code-point": "^3.0.0", |
34882 | "strip-ansi": "^5.1.0" | 35020 | "strip-ansi": "^6.0.0" |
34883 | } | 35021 | } |
34884 | }, | 35022 | }, |
34885 | "strip-ansi": { | 35023 | "strip-ansi": { |
34886 | "version": "5.2.0", | 35024 | "version": "6.0.0", |
34887 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | 35025 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", |
34888 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | 35026 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", |
34889 | "dev": true, | 35027 | "dev": true, |
34890 | "requires": { | 35028 | "requires": { |
34891 | "ansi-regex": "^4.1.0" | 35029 | "ansi-regex": "^5.0.0" |
34892 | } | 35030 | } |
34893 | } | 35031 | } |
34894 | } | 35032 | } |
@@ -37818,15 +37956,6 @@ | |||
37818 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | 37956 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
37819 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | 37957 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" |
37820 | }, | 37958 | }, |
37821 | "write": { | ||
37822 | "version": "1.0.3", | ||
37823 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", | ||
37824 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", | ||
37825 | "dev": true, | ||
37826 | "requires": { | ||
37827 | "mkdirp": "^0.5.1" | ||
37828 | } | ||
37829 | }, | ||
37830 | "write-file-atomic": { | 37959 | "write-file-atomic": { |
37831 | "version": "2.4.3", | 37960 | "version": "2.4.3", |
37832 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", | 37961 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", |
diff --git a/package.json b/package.json index 2c28e8d27..a15f44d9c 100644 --- a/package.json +++ b/package.json | |||
@@ -170,10 +170,10 @@ | |||
170 | "electron-builder": "22.11.7", | 170 | "electron-builder": "22.11.7", |
171 | "electron-notarize": "1.0.0", | 171 | "electron-notarize": "1.0.0", |
172 | "electron-rebuild": "2.3.5", | 172 | "electron-rebuild": "2.3.5", |
173 | "eslint": "5.16.0", | 173 | "eslint": "7.29.0", |
174 | "eslint-config-airbnb": "17.1.1", | 174 | "eslint-config-airbnb": "18.2.1", |
175 | "eslint-plugin-import": "2.23.4", | 175 | "eslint-plugin-import": "2.23.4", |
176 | "eslint-plugin-jest": "22.21.0", | 176 | "eslint-plugin-jest": "24.3.6", |
177 | "eslint-plugin-jsx-a11y": "6.4.1", | 177 | "eslint-plugin-jsx-a11y": "6.4.1", |
178 | "eslint-plugin-react": "7.24.0", | 178 | "eslint-plugin-react": "7.24.0", |
179 | "eslint-webpack-plugin": "^2.5.4", | 179 | "eslint-webpack-plugin": "^2.5.4", |
@@ -193,10 +193,10 @@ | |||
193 | "mobx-react-devtools": "^6.1.1", | 193 | "mobx-react-devtools": "^6.1.1", |
194 | "mocha": "9.0.1", | 194 | "mocha": "9.0.1", |
195 | "node-abi": "2.30.0", | 195 | "node-abi": "2.30.0", |
196 | "node-sass": "^5.0.0", | ||
197 | "prettier": "^2.3.1", | 196 | "prettier": "^2.3.1", |
198 | "preval-build-info": "^1.0.3", | 197 | "preval-build-info": "^1.0.3", |
199 | "react-intl-translations-manager": "^5.0.3", | 198 | "react-intl-translations-manager": "^5.0.3", |
199 | "sass": "1.35.1", | ||
200 | "terser-webpack-plugin": "1.4.5", | 200 | "terser-webpack-plugin": "1.4.5", |
201 | "ts-loader": "^5.4.5", | 201 | "ts-loader": "^5.4.5", |
202 | "tslint": "^5.20.1", | 202 | "tslint": "^5.20.1", |
diff --git a/src/actions/index.js b/src/actions/index.js index 9d3684edc..6f32732b9 100644 --- a/src/actions/index.js +++ b/src/actions/index.js | |||
@@ -17,7 +17,7 @@ import todos from '../features/todos/actions'; | |||
17 | import planSelection from '../features/planSelection/actions'; | 17 | import planSelection from '../features/planSelection/actions'; |
18 | import trialStatusBar from '../features/trialStatusBar/actions'; | 18 | import trialStatusBar from '../features/trialStatusBar/actions'; |
19 | 19 | ||
20 | const actions = Object.assign({}, { | 20 | const actions = { |
21 | service, | 21 | service, |
22 | recipe, | 22 | recipe, |
23 | recipePreview, | 23 | recipePreview, |
@@ -28,7 +28,7 @@ const actions = Object.assign({}, { | |||
28 | news, | 28 | news, |
29 | settings, | 29 | settings, |
30 | requests, | 30 | requests, |
31 | }); | 31 | }; |
32 | 32 | ||
33 | export default Object.assign( | 33 | export default Object.assign( |
34 | defineActions(actions, PropTypes.checkPropTypes), | 34 | defineActions(actions, PropTypes.checkPropTypes), |
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index 75d18f234..8fdaed363 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js | |||
@@ -183,9 +183,7 @@ export default class ServerApi { | |||
183 | async createService(recipeId, data) { | 183 | async createService(recipeId, data) { |
184 | const request = await sendAuthRequest(`${apiBase()}/service`, { | 184 | const request = await sendAuthRequest(`${apiBase()}/service`, { |
185 | method: 'POST', | 185 | method: 'POST', |
186 | body: JSON.stringify(Object.assign({ | 186 | body: JSON.stringify({ recipeId, ...data }), |
187 | recipeId, | ||
188 | }, data)), | ||
189 | }); | 187 | }); |
190 | if (!request.ok) { | 188 | if (!request.ok) { |
191 | throw request; | 189 | throw request; |
diff --git a/src/api/utils/auth.js b/src/api/utils/auth.js index 5952cfe11..9f718f171 100644 --- a/src/api/utils/auth.js +++ b/src/api/utils/auth.js | |||
@@ -4,14 +4,15 @@ import localStorage from 'mobx-localstorage'; | |||
4 | export const prepareAuthRequest = (options = { method: 'GET' }, auth = true) => { | 4 | export const prepareAuthRequest = (options = { method: 'GET' }, auth = true) => { |
5 | const request = Object.assign(options, { | 5 | const request = Object.assign(options, { |
6 | mode: 'cors', | 6 | mode: 'cors', |
7 | headers: Object.assign({ | 7 | headers: { |
8 | 'Content-Type': 'application/json', | 8 | 'Content-Type': 'application/json', |
9 | 'X-Franz-Source': 'desktop', | 9 | 'X-Franz-Source': 'desktop', |
10 | 'X-Franz-Version': app.getVersion(), | 10 | 'X-Franz-Version': app.getVersion(), |
11 | 'X-Franz-platform': process.platform, | 11 | 'X-Franz-platform': process.platform, |
12 | 'X-Franz-Timezone-Offset': new Date().getTimezoneOffset(), | 12 | 'X-Franz-Timezone-Offset': new Date().getTimezoneOffset(), |
13 | 'X-Franz-System-Locale': app.getLocale(), | 13 | 'X-Franz-System-Locale': app.getLocale(), |
14 | }, options.headers), | 14 | ...options.headers, |
15 | }, | ||
15 | }); | 16 | }); |
16 | 17 | ||
17 | if (auth) { | 18 | if (auth) { |
diff --git a/src/components/auth/Import.js b/src/components/auth/Import.js index 3e34c3162..3073cad73 100644 --- a/src/components/auth/Import.js +++ b/src/components/auth/Import.js | |||
@@ -28,7 +28,9 @@ const messages = defineMessages({ | |||
28 | }, | 28 | }, |
29 | }); | 29 | }); |
30 | 30 | ||
31 | export default @observer class Import extends Component { | 31 | export default |
32 | @observer | ||
33 | class Import extends Component { | ||
32 | static propTypes = { | 34 | static propTypes = { |
33 | services: MobxPropTypes.arrayOrObservableArray.isRequired, | 35 | services: MobxPropTypes.arrayOrObservableArray.isRequired, |
34 | onSubmit: PropTypes.func.isRequired, | 36 | onSubmit: PropTypes.func.isRequired, |
@@ -40,17 +42,21 @@ export default @observer class Import extends Component { | |||
40 | intl: intlShape, | 42 | intl: intlShape, |
41 | }; | 43 | }; |
42 | 44 | ||
43 | componentWillMount() { | 45 | componentDidMount() { |
44 | const config = { | 46 | const config = { |
45 | fields: { | 47 | fields: { |
46 | import: [...this.props.services.filter(s => s.recipe).map(s => ({ | 48 | import: [ |
47 | fields: { | 49 | ...this.props.services |
48 | add: { | 50 | .filter((s) => s.recipe) |
49 | default: true, | 51 | .map((s) => ({ |
50 | options: s, | 52 | fields: { |
51 | }, | 53 | add: { |
52 | }, | 54 | default: true, |
53 | }))], | 55 | options: s, |
56 | }, | ||
57 | }, | ||
58 | })), | ||
59 | ], | ||
54 | }, | 60 | }, |
55 | }; | 61 | }; |
56 | 62 | ||
@@ -62,9 +68,12 @@ export default @observer class Import extends Component { | |||
62 | e.preventDefault(); | 68 | e.preventDefault(); |
63 | this.form.submit({ | 69 | this.form.submit({ |
64 | onSuccess: (form) => { | 70 | onSuccess: (form) => { |
65 | const servicesImport = form.values().import | 71 | const servicesImport = form |
66 | .map((value, i) => !value.add || services.filter(s => s.recipe)[i]) | 72 | .values() |
67 | .filter(s => typeof s !== 'boolean'); | 73 | .import.map( |
74 | (value, i) => !value.add || services.filter((s) => s.recipe)[i], | ||
75 | ) | ||
76 | .filter((s) => typeof s !== 'boolean'); | ||
68 | 77 | ||
69 | this.props.onSubmit({ services: servicesImport }); | 78 | this.props.onSubmit({ services: servicesImport }); |
70 | }, | 79 | }, |
@@ -76,37 +85,31 @@ export default @observer class Import extends Component { | |||
76 | const { intl } = this.context; | 85 | const { intl } = this.context; |
77 | const { services, isSubmitting, inviteRoute } = this.props; | 86 | const { services, isSubmitting, inviteRoute } = this.props; |
78 | 87 | ||
79 | const availableServices = services.filter(s => s.recipe); | 88 | const availableServices = services.filter((s) => s.recipe); |
80 | const unavailableServices = services.filter(s => !s.recipe); | 89 | const unavailableServices = services.filter((s) => !s.recipe); |
81 | 90 | ||
82 | return ( | 91 | return ( |
83 | <div className="auth__scroll-container"> | 92 | <div className="auth__scroll-container"> |
84 | <div className="auth__container auth__container--signup"> | 93 | <div className="auth__container auth__container--signup"> |
85 | <form className="franz-form auth__form" onSubmit={e => this.submit(e)}> | 94 | <form |
86 | <img | 95 | className="franz-form auth__form" |
87 | src="./assets/images/logo.svg" | 96 | onSubmit={(e) => this.submit(e)} |
88 | className="auth__logo" | 97 | > |
89 | alt="" | 98 | <img src="./assets/images/logo.svg" className="auth__logo" alt="" /> |
90 | /> | 99 | <h1>{intl.formatMessage(messages.headline)}</h1> |
91 | <h1> | ||
92 | {intl.formatMessage(messages.headline)} | ||
93 | </h1> | ||
94 | <table className="service-table available-services"> | 100 | <table className="service-table available-services"> |
95 | <tbody> | 101 | <tbody> |
96 | {this.form.$('import').map((service, i) => ( | 102 | {this.form.$('import').map((service, i) => ( |
97 | <tr | 103 | <tr key={service.id} className="service-table__row"> |
98 | key={service.id} | ||
99 | className="service-table__row" | ||
100 | > | ||
101 | <td className="service-table__toggle"> | 104 | <td className="service-table__toggle"> |
102 | <Toggle | 105 | <Toggle field={service.$('add')} showLabel={false} /> |
103 | field={service.$('add')} | ||
104 | showLabel={false} | ||
105 | /> | ||
106 | </td> | 106 | </td> |
107 | <td className="service-table__column-icon"> | 107 | <td className="service-table__column-icon"> |
108 | <img | 108 | <img |
109 | src={availableServices[i].custom_icon || availableServices[i].recipe.icons.svg} | 109 | src={ |
110 | availableServices[i].custom_icon | ||
111 | || availableServices[i].recipe.icons.svg | ||
112 | } | ||
110 | className={classnames({ | 113 | className={classnames({ |
111 | 'service-table__icon': true, | 114 | 'service-table__icon': true, |
112 | 'has-custom-icon': availableServices[i].custom_icon, | 115 | 'has-custom-icon': availableServices[i].custom_icon, |
@@ -125,14 +128,18 @@ export default @observer class Import extends Component { | |||
125 | </table> | 128 | </table> |
126 | {unavailableServices.length > 0 && ( | 129 | {unavailableServices.length > 0 && ( |
127 | <div className="unavailable-services"> | 130 | <div className="unavailable-services"> |
128 | <strong>{intl.formatMessage(messages.notSupportedHeadline)}</strong> | 131 | <strong> |
132 | {intl.formatMessage(messages.notSupportedHeadline)} | ||
133 | </strong> | ||
129 | <p> | 134 | <p> |
130 | {services.filter(s => !s.recipe).map((service, i) => ( | 135 | {services |
131 | <span key={service.id}> | 136 | .filter((s) => !s.recipe) |
132 | {service.name !== '' ? service.name : service.service} | 137 | .map((service, i) => ( |
133 | {unavailableServices.length > i + 1 ? ', ' : ''} | 138 | <span key={service.id}> |
134 | </span> | 139 | {service.name !== '' ? service.name : service.service} |
135 | ))} | 140 | {unavailableServices.length > i + 1 ? ', ' : ''} |
141 | </span> | ||
142 | ))} | ||
136 | </p> | 143 | </p> |
137 | </div> | 144 | </div> |
138 | )} | 145 | )} |
diff --git a/src/components/auth/Invite.js b/src/components/auth/Invite.js index fd957ee73..4b4d63a6b 100644 --- a/src/components/auth/Invite.js +++ b/src/components/auth/Invite.js | |||
@@ -43,7 +43,9 @@ const messages = defineMessages({ | |||
43 | }, | 43 | }, |
44 | }); | 44 | }); |
45 | 45 | ||
46 | export default @observer class Invite extends Component { | 46 | export default |
47 | @observer | ||
48 | class Invite extends Component { | ||
47 | static propTypes = { | 49 | static propTypes = { |
48 | onSubmit: PropTypes.func.isRequired, | 50 | onSubmit: PropTypes.func.isRequired, |
49 | embed: PropTypes.bool, | 51 | embed: PropTypes.bool, |
@@ -63,36 +65,41 @@ export default @observer class Invite extends Component { | |||
63 | 65 | ||
64 | state = { showSuccessInfo: false }; | 66 | state = { showSuccessInfo: false }; |
65 | 67 | ||
66 | componentWillMount() { | 68 | componentDidMount() { |
67 | const handlers = { | 69 | this.form = new Form( |
68 | onChange: () => { | 70 | { |
69 | this.setState({ showSuccessInfo: false }); | 71 | fields: { |
70 | }, | 72 | invite: [ |
71 | }; | 73 | ...Array(3).fill({ |
72 | 74 | fields: { | |
73 | this.form = new Form({ | 75 | name: { |
74 | fields: { | 76 | label: this.context.intl.formatMessage(messages.nameLabel), |
75 | invite: [...Array(3).fill({ | 77 | placeholder: this.context.intl.formatMessage( |
76 | fields: { | 78 | messages.nameLabel, |
77 | name: { | 79 | ), |
78 | label: this.context.intl.formatMessage(messages.nameLabel), | 80 | onChange: () => { |
79 | placeholder: this.context.intl.formatMessage(messages.nameLabel), | 81 | this.setState({ showSuccessInfo: false }); |
80 | handlers, | 82 | }, |
81 | // related: ['invite.0.email'], // path accepted but does not work | 83 | // related: ['invite.0.email'], // path accepted but does not work |
82 | }, | 84 | }, |
83 | email: { | 85 | email: { |
84 | label: this.context.intl.formatMessage(messages.emailLabel), | 86 | label: this.context.intl.formatMessage(messages.emailLabel), |
85 | placeholder: this.context.intl.formatMessage(messages.emailLabel), | 87 | placeholder: this.context.intl.formatMessage( |
86 | handlers, | 88 | messages.emailLabel, |
87 | validators: [email], | 89 | ), |
88 | }, | 90 | onChange: () => { |
89 | }, | 91 | this.setState({ showSuccessInfo: false }); |
90 | })], | 92 | }, |
93 | validators: [email], | ||
94 | }, | ||
95 | }, | ||
96 | }), | ||
97 | ], | ||
98 | }, | ||
91 | }, | 99 | }, |
92 | }, this.context.intl); | 100 | this.context.intl, |
93 | } | 101 | ); |
94 | 102 | ||
95 | componentDidMount() { | ||
96 | document.querySelector('input:first-child').focus(); | 103 | document.querySelector('input:first-child').focus(); |
97 | } | 104 | } |
98 | 105 | ||
@@ -117,9 +124,10 @@ export default @observer class Invite extends Component { | |||
117 | const { intl } = this.context; | 124 | const { intl } = this.context; |
118 | const { embed, isInviteSuccessful, isLoadingInvite } = this.props; | 125 | const { embed, isInviteSuccessful, isLoadingInvite } = this.props; |
119 | 126 | ||
120 | const atLeastOneEmailAddress = form.$('invite') | 127 | const atLeastOneEmailAddress = form |
121 | .map(invite => invite.$('email').value) | 128 | .$('invite') |
122 | .some(emailValue => emailValue.trim() !== ''); | 129 | .map((invite) => invite.$('email').value) |
130 | .some((emailValue) => emailValue.trim() !== ''); | ||
123 | 131 | ||
124 | const sendButtonClassName = classnames({ | 132 | const sendButtonClassName = classnames({ |
125 | auth__button: true, | 133 | auth__button: true, |
@@ -127,7 +135,7 @@ export default @observer class Invite extends Component { | |||
127 | }); | 135 | }); |
128 | 136 | ||
129 | const renderForm = ( | 137 | const renderForm = ( |
130 | <Fragment> | 138 | <> |
131 | {this.state.showSuccessInfo && isInviteSuccessful && ( | 139 | {this.state.showSuccessInfo && isInviteSuccessful && ( |
132 | <Appear> | 140 | <Appear> |
133 | <Infobox | 141 | <Infobox |
@@ -140,18 +148,17 @@ export default @observer class Invite extends Component { | |||
140 | </Appear> | 148 | </Appear> |
141 | )} | 149 | )} |
142 | 150 | ||
143 | <form className="franz-form auth__form" onSubmit={e => this.submit(e)}> | 151 | <form |
152 | className="franz-form auth__form" | ||
153 | onSubmit={(e) => this.submit(e)} | ||
154 | > | ||
144 | {!embed && ( | 155 | {!embed && ( |
145 | <img | 156 | <img src="./assets/images/logo.svg" className="auth__logo" alt="" /> |
146 | src="./assets/images/logo.svg" | ||
147 | className="auth__logo" | ||
148 | alt="" | ||
149 | /> | ||
150 | )} | 157 | )} |
151 | <h1 className={embed && 'invite__embed'}> | 158 | <h1 className={embed && 'invite__embed'}> |
152 | {intl.formatMessage(messages.headline)} | 159 | {intl.formatMessage(messages.headline)} |
153 | </h1> | 160 | </h1> |
154 | {form.$('invite').map(invite => ( | 161 | {form.$('invite').map((invite) => ( |
155 | <div className="grid" key={invite.key}> | 162 | <div className="grid" key={invite.key}> |
156 | <div className="grid__row"> | 163 | <div className="grid__row"> |
157 | <Input field={invite.$('name')} showLabel={false} /> | 164 | <Input field={invite.$('name')} showLabel={false} /> |
@@ -175,17 +182,27 @@ export default @observer class Invite extends Component { | |||
175 | </Link> | 182 | </Link> |
176 | )} | 183 | )} |
177 | </form> | 184 | </form> |
178 | </Fragment> | 185 | </> |
179 | ); | 186 | ); |
180 | 187 | ||
181 | return ( | 188 | return ( |
182 | <div className={!embed ? 'auth__container auth__container--signup' : 'settings__main'}> | 189 | <div |
190 | className={ | ||
191 | !embed ? 'auth__container auth__container--signup' : 'settings__main' | ||
192 | } | ||
193 | > | ||
183 | {embed && ( | 194 | {embed && ( |
184 | <div className="settings__header"> | 195 | <div className="settings__header"> |
185 | <h1>{this.context.intl.formatMessage(messages.settingsHeadline)}</h1> | 196 | <h1> |
197 | {this.context.intl.formatMessage(messages.settingsHeadline)} | ||
198 | </h1> | ||
186 | </div> | 199 | </div> |
187 | )} | 200 | )} |
188 | {!embed ? <div>{renderForm}</div> : <div className="settings__body invite__form">{renderForm}</div>} | 201 | {!embed ? ( |
202 | <div>{renderForm}</div> | ||
203 | ) : ( | ||
204 | <div className="settings__body invite__form">{renderForm}</div> | ||
205 | )} | ||
189 | </div> | 206 | </div> |
190 | ); | 207 | ); |
191 | } | 208 | } |
diff --git a/src/components/auth/Pricing.js b/src/components/auth/Pricing.js index fecc6ba56..2fcabe54d 100644 --- a/src/components/auth/Pricing.js +++ b/src/components/auth/Pricing.js | |||
@@ -10,7 +10,6 @@ import { Button } from '@meetfranz/forms'; | |||
10 | import { FeatureItem } from '../ui/FeatureItem'; | 10 | import { FeatureItem } from '../ui/FeatureItem'; |
11 | import { FeatureList } from '../ui/FeatureList'; | 11 | import { FeatureList } from '../ui/FeatureList'; |
12 | 12 | ||
13 | |||
14 | const messages = defineMessages({ | 13 | const messages = defineMessages({ |
15 | headline: { | 14 | headline: { |
16 | id: 'pricing.trial.headline.pro', | 15 | id: 'pricing.trial.headline.pro', |
diff --git a/src/components/auth/Welcome.js b/src/components/auth/Welcome.js index 6e742e0c1..5f2fac64b 100644 --- a/src/components/auth/Welcome.js +++ b/src/components/auth/Welcome.js | |||
@@ -72,7 +72,6 @@ export default @inject('actions') @observer class Login extends Component { | |||
72 | <br /> | 72 | <br /> |
73 | <br /> | 73 | <br /> |
74 | 74 | ||
75 | |||
76 | <Link to={changeServerRoute}> | 75 | <Link to={changeServerRoute}> |
77 | <span style={{ | 76 | <span style={{ |
78 | textAlign: 'center', | 77 | textAlign: 'center', |
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js index 444d5fea4..3c0fed32b 100644 --- a/src/components/services/content/ServiceView.js +++ b/src/components/services/content/ServiceView.js | |||
@@ -109,7 +109,7 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
109 | return ( | 109 | return ( |
110 | <div className={webviewClasses}> | 110 | <div className={webviewClasses}> |
111 | {service.isActive && service.isEnabled && ( | 111 | {service.isActive && service.isEnabled && ( |
112 | <Fragment> | 112 | <> |
113 | {service.hasCrashed && ( | 113 | {service.hasCrashed && ( |
114 | <WebviewCrashHandler | 114 | <WebviewCrashHandler |
115 | name={service.recipe.name} | 115 | name={service.recipe.name} |
@@ -131,10 +131,10 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
131 | edit={edit} | 131 | edit={edit} |
132 | /> | 132 | /> |
133 | )} | 133 | )} |
134 | </Fragment> | 134 | </> |
135 | )} | 135 | )} |
136 | {!service.isEnabled ? ( | 136 | {!service.isEnabled ? ( |
137 | <Fragment> | 137 | <> |
138 | {service.isActive && ( | 138 | {service.isActive && ( |
139 | <ServiceDisabled | 139 | <ServiceDisabled |
140 | name={service.recipe.name} | 140 | name={service.recipe.name} |
@@ -142,7 +142,7 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
142 | enable={enable} | 142 | enable={enable} |
143 | /> | 143 | /> |
144 | )} | 144 | )} |
145 | </Fragment> | 145 | </> |
146 | ) : ( | 146 | ) : ( |
147 | <> | 147 | <> |
148 | {(!service.isHibernating || service.isHibernationEnabled) ? ( | 148 | {(!service.isHibernating || service.isHibernationEnabled) ? ( |
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index 7cf02c237..caa3cf9aa 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js | |||
@@ -34,7 +34,6 @@ const messages = defineMessages({ | |||
34 | }, | 34 | }, |
35 | }); | 35 | }); |
36 | 36 | ||
37 | |||
38 | const styles = { | 37 | const styles = { |
39 | confettiContainer: { | 38 | confettiContainer: { |
40 | position: 'absolute', | 39 | position: 'absolute', |
diff --git a/src/components/services/content/WebviewCrashHandler.js b/src/components/services/content/WebviewCrashHandler.js index 7a69dba87..b62940c06 100644 --- a/src/components/services/content/WebviewCrashHandler.js +++ b/src/components/services/content/WebviewCrashHandler.js | |||
@@ -43,7 +43,6 @@ export default @observer class WebviewCrashHandler extends Component { | |||
43 | 43 | ||
44 | countdownIntervalTimeout = ms('1s'); | 44 | countdownIntervalTimeout = ms('1s'); |
45 | 45 | ||
46 | |||
47 | componentDidMount() { | 46 | componentDidMount() { |
48 | const { reload } = this.props; | 47 | const { reload } = this.props; |
49 | 48 | ||
diff --git a/src/components/settings/SettingsLayout.js b/src/components/settings/SettingsLayout.js index 72ba7b2e3..5b3b754fa 100644 --- a/src/components/settings/SettingsLayout.js +++ b/src/components/settings/SettingsLayout.js | |||
@@ -1,38 +1,55 @@ | |||
1 | import React, { Component } from 'react'; | 1 | import React, { Component } from 'react'; |
2 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
3 | import { observer } from 'mobx-react'; | 3 | import { observer } from 'mobx-react'; |
4 | import { defineMessages, intlShape } from 'react-intl'; | ||
4 | 5 | ||
5 | import ErrorBoundary from '../util/ErrorBoundary'; | 6 | import ErrorBoundary from '../util/ErrorBoundary'; |
6 | import { oneOrManyChildElements } from '../../prop-types'; | 7 | import { oneOrManyChildElements } from '../../prop-types'; |
7 | import Appear from '../ui/effects/Appear'; | 8 | import Appear from '../ui/effects/Appear'; |
8 | 9 | ||
9 | export default @observer class SettingsLayout extends Component { | 10 | const messages = defineMessages({ |
11 | closeSettings: { | ||
12 | id: 'settings.app.closeSettings', | ||
13 | defaultMessage: '!!!Close settings', | ||
14 | }, | ||
15 | }); | ||
16 | |||
17 | export default | ||
18 | @observer | ||
19 | class SettingsLayout extends Component { | ||
10 | static propTypes = { | 20 | static propTypes = { |
11 | navigation: PropTypes.element.isRequired, | 21 | navigation: PropTypes.element.isRequired, |
12 | children: oneOrManyChildElements.isRequired, | 22 | children: oneOrManyChildElements.isRequired, |
13 | closeSettings: PropTypes.func.isRequired, | 23 | closeSettings: PropTypes.func.isRequired, |
14 | }; | 24 | }; |
15 | 25 | ||
16 | componentWillMount() { | 26 | static contextTypes = { |
27 | intl: intlShape, | ||
28 | }; | ||
29 | |||
30 | componentDidMount() { | ||
17 | document.addEventListener('keydown', this.handleKeyDown.bind(this), false); | 31 | document.addEventListener('keydown', this.handleKeyDown.bind(this), false); |
18 | } | 32 | } |
19 | 33 | ||
20 | componentWillUnmount() { | 34 | componentWillUnmount() { |
21 | document.removeEventListener('keydown', this.handleKeyDown.bind(this), false); | 35 | document.removeEventListener( |
36 | 'keydown', | ||
37 | this.handleKeyDown.bind(this), | ||
38 | false, | ||
39 | ); | ||
22 | } | 40 | } |
23 | 41 | ||
24 | handleKeyDown(e) { | 42 | handleKeyDown(e) { |
25 | if (e.keyCode === 27) { // escape key | 43 | if (e.keyCode === 27) { |
44 | // escape key | ||
26 | this.props.closeSettings(); | 45 | this.props.closeSettings(); |
27 | } | 46 | } |
28 | } | 47 | } |
29 | 48 | ||
30 | render() { | 49 | render() { |
31 | const { | 50 | const { navigation, children, closeSettings } = this.props; |
32 | navigation, | 51 | |
33 | children, | 52 | const { intl } = this.context; |
34 | closeSettings, | ||
35 | } = this.props; | ||
36 | 53 | ||
37 | return ( | 54 | return ( |
38 | <Appear transitionName="fadeIn-fast"> | 55 | <Appear transitionName="fadeIn-fast"> |
@@ -42,6 +59,7 @@ export default @observer class SettingsLayout extends Component { | |||
42 | type="button" | 59 | type="button" |
43 | className="settings-wrapper__action" | 60 | className="settings-wrapper__action" |
44 | onClick={closeSettings} | 61 | onClick={closeSettings} |
62 | aria-label={intl.formatMessage(messages.closeSettings)} | ||
45 | /> | 63 | /> |
46 | <div className="settings franz-form"> | 64 | <div className="settings franz-form"> |
47 | {navigation} | 65 | {navigation} |
@@ -50,6 +68,7 @@ export default @observer class SettingsLayout extends Component { | |||
50 | type="button" | 68 | type="button" |
51 | className="settings__close mdi mdi-close" | 69 | className="settings__close mdi mdi-close" |
52 | onClick={closeSettings} | 70 | onClick={closeSettings} |
71 | aria-label={intl.formatMessage(messages.closeSettings)} | ||
53 | /> | 72 | /> |
54 | </div> | 73 | </div> |
55 | </ErrorBoundary> | 74 | </ErrorBoundary> |
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index 1bbc1f1d4..a8501670b 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js | |||
@@ -311,14 +311,14 @@ export default @observer class EditServiceForm extends Component { | |||
311 | {recipe.hasCustomUrl && ( | 311 | {recipe.hasCustomUrl && ( |
312 | <TabItem title={intl.formatMessage(messages.tabOnPremise)}> | 312 | <TabItem title={intl.formatMessage(messages.tabOnPremise)}> |
313 | {user.isPremium || recipe.author.find(a => a.email === user.email) ? ( | 313 | {user.isPremium || recipe.author.find(a => a.email === user.email) ? ( |
314 | <Fragment> | 314 | <> |
315 | <Input field={form.$('customUrl')} /> | 315 | <Input field={form.$('customUrl')} /> |
316 | {form.error === 'url-validation-error' && ( | 316 | {form.error === 'url-validation-error' && ( |
317 | <p className="franz-form__error"> | 317 | <p className="franz-form__error"> |
318 | {intl.formatMessage(messages.customUrlValidationError, { name: recipe.name })} | 318 | {intl.formatMessage(messages.customUrlValidationError, { name: recipe.name })} |
319 | </p> | 319 | </p> |
320 | )} | 320 | )} |
321 | </Fragment> | 321 | </> |
322 | ) : ( | 322 | ) : ( |
323 | <div className="center premium-info"> | 323 | <div className="center premium-info"> |
324 | <p>{intl.formatMessage(messages.customUrlPremiumInfo)}</p> | 324 | <p>{intl.formatMessage(messages.customUrlPremiumInfo)}</p> |
@@ -360,12 +360,12 @@ export default @observer class EditServiceForm extends Component { | |||
360 | <h3>{intl.formatMessage(messages.headlineBadges)}</h3> | 360 | <h3>{intl.formatMessage(messages.headlineBadges)}</h3> |
361 | <Toggle field={form.$('isBadgeEnabled')} /> | 361 | <Toggle field={form.$('isBadgeEnabled')} /> |
362 | {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && ( | 362 | {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && ( |
363 | <Fragment> | 363 | <> |
364 | <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> | 364 | <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> |
365 | <p className="settings__help"> | 365 | <p className="settings__help"> |
366 | {intl.formatMessage(messages.indirectMessageInfo)} | 366 | {intl.formatMessage(messages.indirectMessageInfo)} |
367 | </p> | 367 | </p> |
368 | </Fragment> | 368 | </> |
369 | )} | 369 | )} |
370 | </div> | 370 | </div> |
371 | 371 | ||
@@ -389,8 +389,7 @@ export default @observer class EditServiceForm extends Component { | |||
389 | <Slider field={form.$('darkReaderContrast')} /> | 389 | <Slider field={form.$('darkReaderContrast')} /> |
390 | <Slider field={form.$('darkReaderSepia')} /> | 390 | <Slider field={form.$('darkReaderSepia')} /> |
391 | </> | 391 | </> |
392 | ) | 392 | )} |
393 | } | ||
394 | </div> | 393 | </div> |
395 | </div> | 394 | </div> |
396 | <div className="service-icon"> | 395 | <div className="service-icon"> |
@@ -425,7 +424,7 @@ export default @observer class EditServiceForm extends Component { | |||
425 | </h3> | 424 | </h3> |
426 | <Toggle field={form.$('proxy.isEnabled')} /> | 425 | <Toggle field={form.$('proxy.isEnabled')} /> |
427 | {form.$('proxy.isEnabled').value && ( | 426 | {form.$('proxy.isEnabled').value && ( |
428 | <Fragment> | 427 | <> |
429 | <div className="grid"> | 428 | <div className="grid"> |
430 | <div className="grid__row"> | 429 | <div className="grid__row"> |
431 | <Input field={form.$('proxy.host')} className="proxyHost" /> | 430 | <Input field={form.$('proxy.host')} className="proxyHost" /> |
@@ -449,7 +448,7 @@ export default @observer class EditServiceForm extends Component { | |||
449 | <span className="mdi mdi-information" /> | 448 | <span className="mdi mdi-information" /> |
450 | {intl.formatMessage(messages.proxyInfo)} | 449 | {intl.formatMessage(messages.proxyInfo)} |
451 | </p> | 450 | </p> |
452 | </Fragment> | 451 | </> |
453 | )} | 452 | )} |
454 | </div> | 453 | </div> |
455 | </PremiumFeatureContainer> | 454 | </PremiumFeatureContainer> |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 4ba7dc720..98a119bfa 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -567,7 +567,7 @@ export default @observer class EditSettingsForm extends Component { | |||
567 | condition={!isSpellcheckerIncludedInCurrentPlan} | 567 | condition={!isSpellcheckerIncludedInCurrentPlan} |
568 | gaEventInfo={{ category: 'User', event: 'upgrade', label: 'spellchecker' }} | 568 | gaEventInfo={{ category: 'User', event: 'upgrade', label: 'spellchecker' }} |
569 | > | 569 | > |
570 | <Fragment> | 570 | <> |
571 | <Toggle | 571 | <Toggle |
572 | field={form.$('enableSpellchecking')} | 572 | field={form.$('enableSpellchecking')} |
573 | /> | 573 | /> |
@@ -577,7 +577,7 @@ export default @observer class EditSettingsForm extends Component { | |||
577 | {isMac && form.$('enableSpellchecking').value && ( | 577 | {isMac && form.$('enableSpellchecking').value && ( |
578 | <p>{intl.formatMessage(messages.spellCheckerLanguageInfo)}</p> | 578 | <p>{intl.formatMessage(messages.spellCheckerLanguageInfo)}</p> |
579 | )} | 579 | )} |
580 | </Fragment> | 580 | </> |
581 | </PremiumFeatureContainer> | 581 | </PremiumFeatureContainer> |
582 | <a | 582 | <a |
583 | href={FRANZ_TRANSLATION} | 583 | href={FRANZ_TRANSLATION} |
@@ -679,18 +679,15 @@ export default @observer class EditSettingsForm extends Component { | |||
679 | <br /> | 679 | <br /> |
680 | {intl.formatMessage(messages.updateStatusUpToDate)} | 680 | {intl.formatMessage(messages.updateStatusUpToDate)} |
681 | </> | 681 | </> |
682 | ) | 682 | )} |
683 | } | ||
684 | <p className="settings__message"> | 683 | <p className="settings__message"> |
685 | <span className="mdi mdi-github-face" /> | 684 | <span className="mdi mdi-github-face" /> |
686 | <span> | 685 | <span> |
687 | 686 | ||
688 | |||
689 | Ferdi is based on | 687 | Ferdi is based on |
690 | {' '} | 688 | {' '} |
691 | <a href={`${GITHUB_FRANZ_URL}/franz`} target="_blank">Franz</a> | 689 | <a href={`${GITHUB_FRANZ_URL}/franz`} target="_blank">Franz</a> |
692 | 690 | ||
693 | |||
694 | , a project published | 691 | , a project published |
695 | under the | 692 | under the |
696 | {' '} | 693 | {' '} |
diff --git a/src/components/settings/team/TeamDashboard.js b/src/components/settings/team/TeamDashboard.js index f26f4cc0c..602d6e490 100644 --- a/src/components/settings/team/TeamDashboard.js +++ b/src/components/settings/team/TeamDashboard.js | |||
@@ -98,7 +98,6 @@ const styles = { | |||
98 | }, | 98 | }, |
99 | }; | 99 | }; |
100 | 100 | ||
101 | |||
102 | export default @injectSheet(styles) @observer class TeamDashboard extends Component { | 101 | export default @injectSheet(styles) @observer class TeamDashboard extends Component { |
103 | static propTypes = { | 102 | static propTypes = { |
104 | isLoading: PropTypes.bool.isRequired, | 103 | isLoading: PropTypes.bool.isRequired, |
diff --git a/src/components/ui/ImageUpload.js b/src/components/ui/ImageUpload.js index e831eb47b..6a8c7645f 100644 --- a/src/components/ui/ImageUpload.js +++ b/src/components/ui/ImageUpload.js | |||
@@ -55,7 +55,7 @@ export default @observer class ImageUpload extends Component { | |||
55 | </label> | 55 | </label> |
56 | <div className="image-upload"> | 56 | <div className="image-upload"> |
57 | {(field.value && field.value !== 'delete') || this.state.path ? ( | 57 | {(field.value && field.value !== 'delete') || this.state.path ? ( |
58 | <Fragment> | 58 | <> |
59 | <div | 59 | <div |
60 | className="image-upload__preview" | 60 | className="image-upload__preview" |
61 | style={{ | 61 | style={{ |
@@ -80,7 +80,7 @@ export default @observer class ImageUpload extends Component { | |||
80 | </button> | 80 | </button> |
81 | <div className="image-upload__action-background" /> | 81 | <div className="image-upload__action-background" /> |
82 | </div> | 82 | </div> |
83 | </Fragment> | 83 | </> |
84 | ) : ( | 84 | ) : ( |
85 | <Dropzone | 85 | <Dropzone |
86 | ref={(node) => { | 86 | ref={(node) => { |
diff --git a/src/components/ui/InfoBar.js b/src/components/ui/InfoBar.js index 612399e9f..bd2af2296 100644 --- a/src/components/ui/InfoBar.js +++ b/src/components/ui/InfoBar.js | |||
@@ -3,11 +3,21 @@ import PropTypes from 'prop-types'; | |||
3 | import { observer } from 'mobx-react'; | 3 | import { observer } from 'mobx-react'; |
4 | import classnames from 'classnames'; | 4 | import classnames from 'classnames'; |
5 | import Loader from 'react-loader'; | 5 | import Loader from 'react-loader'; |
6 | import { defineMessages, intlShape } from 'react-intl'; | ||
6 | 7 | ||
7 | // import { oneOrManyChildElements } from '../../prop-types'; | 8 | // import { oneOrManyChildElements } from '../../prop-types'; |
8 | import Appear from './effects/Appear'; | 9 | import Appear from './effects/Appear'; |
9 | 10 | ||
10 | export default @observer class InfoBar extends Component { | 11 | const messages = defineMessages({ |
12 | hide: { | ||
13 | id: 'infobar.hide', | ||
14 | defaultMessage: '!!!Hide', | ||
15 | }, | ||
16 | }); | ||
17 | |||
18 | export default | ||
19 | @observer | ||
20 | class InfoBar extends Component { | ||
11 | static propTypes = { | 21 | static propTypes = { |
12 | // eslint-disable-next-line | 22 | // eslint-disable-next-line |
13 | children: PropTypes.any.isRequired, | 23 | children: PropTypes.any.isRequired, |
@@ -32,6 +42,10 @@ export default @observer class InfoBar extends Component { | |||
32 | onHide: () => null, | 42 | onHide: () => null, |
33 | }; | 43 | }; |
34 | 44 | ||
45 | static contextTypes = { | ||
46 | intl: intlShape, | ||
47 | }; | ||
48 | |||
35 | render() { | 49 | render() { |
36 | const { | 50 | const { |
37 | children, | 51 | children, |
@@ -45,6 +59,8 @@ export default @observer class InfoBar extends Component { | |||
45 | onHide, | 59 | onHide, |
46 | } = this.props; | 60 | } = this.props; |
47 | 61 | ||
62 | const { intl } = this.context; | ||
63 | |||
48 | let transitionName = 'slideUp'; | 64 | let transitionName = 'slideUp'; |
49 | if (position === 'top') { | 65 | if (position === 'top') { |
50 | transitionName = 'slideDown'; | 66 | transitionName = 'slideDown'; |
@@ -63,11 +79,7 @@ export default @observer class InfoBar extends Component { | |||
63 | <div className="info-bar__content"> | 79 | <div className="info-bar__content"> |
64 | {children} | 80 | {children} |
65 | {ctaLabel && ( | 81 | {ctaLabel && ( |
66 | <button | 82 | <button type="button" className="info-bar__cta" onClick={onClick}> |
67 | type="button" | ||
68 | className="info-bar__cta" | ||
69 | onClick={onClick} | ||
70 | > | ||
71 | <Loader | 83 | <Loader |
72 | loaded={!ctaLoading} | 84 | loaded={!ctaLoading} |
73 | lines={10} | 85 | lines={10} |
@@ -84,6 +96,7 @@ export default @observer class InfoBar extends Component { | |||
84 | type="button" | 96 | type="button" |
85 | className="info-bar__close mdi mdi-close" | 97 | className="info-bar__close mdi mdi-close" |
86 | onClick={onHide} | 98 | onClick={onHide} |
99 | aria-label={intl.formatMessage(messages.hide)} | ||
87 | /> | 100 | /> |
88 | )} | 101 | )} |
89 | </Appear> | 102 | </Appear> |
diff --git a/src/components/ui/Infobox.js b/src/components/ui/Infobox.js index 0917ee9f0..73b48b957 100644 --- a/src/components/ui/Infobox.js +++ b/src/components/ui/Infobox.js | |||
@@ -3,8 +3,18 @@ import PropTypes from 'prop-types'; | |||
3 | import { observer } from 'mobx-react'; | 3 | import { observer } from 'mobx-react'; |
4 | import classnames from 'classnames'; | 4 | import classnames from 'classnames'; |
5 | import Loader from 'react-loader'; | 5 | import Loader from 'react-loader'; |
6 | import { defineMessages, intlShape } from 'react-intl'; | ||
6 | 7 | ||
7 | export default @observer class Infobox extends Component { | 8 | const messages = defineMessages({ |
9 | dismiss: { | ||
10 | id: 'infobox.dismiss', | ||
11 | defaultMessage: '!!!Dismiss', | ||
12 | }, | ||
13 | }); | ||
14 | |||
15 | export default | ||
16 | @observer | ||
17 | class Infobox extends Component { | ||
8 | static propTypes = { | 18 | static propTypes = { |
9 | children: PropTypes.any.isRequired, // eslint-disable-line | 19 | children: PropTypes.any.isRequired, // eslint-disable-line |
10 | icon: PropTypes.string, | 20 | icon: PropTypes.string, |
@@ -28,6 +38,10 @@ export default @observer class Infobox extends Component { | |||
28 | onSeen: () => null, | 38 | onSeen: () => null, |
29 | }; | 39 | }; |
30 | 40 | ||
41 | static contextTypes = { | ||
42 | intl: intlShape, | ||
43 | }; | ||
44 | |||
31 | state = { | 45 | state = { |
32 | dismissed: false, | 46 | dismissed: false, |
33 | }; | 47 | }; |
@@ -49,6 +63,8 @@ export default @observer class Infobox extends Component { | |||
49 | onDismiss, | 63 | onDismiss, |
50 | } = this.props; | 64 | } = this.props; |
51 | 65 | ||
66 | const { intl } = this.context; | ||
67 | |||
52 | if (this.state.dismissed) { | 68 | if (this.state.dismissed) { |
53 | return null; | 69 | return null; |
54 | } | 70 | } |
@@ -61,18 +77,10 @@ export default @observer class Infobox extends Component { | |||
61 | 'infobox--default': !type, | 77 | 'infobox--default': !type, |
62 | })} | 78 | })} |
63 | > | 79 | > |
64 | {icon && ( | 80 | {icon && <i className={`mdi mdi-${icon}`} />} |
65 | <i className={`mdi mdi-${icon}`} /> | 81 | <div className="infobox__content">{children}</div> |
66 | )} | ||
67 | <div className="infobox__content"> | ||
68 | {children} | ||
69 | </div> | ||
70 | {ctaLabel && ( | 82 | {ctaLabel && ( |
71 | <button | 83 | <button className="infobox__cta" onClick={ctaOnClick} type="button"> |
72 | className="infobox__cta" | ||
73 | onClick={ctaOnClick} | ||
74 | type="button" | ||
75 | > | ||
76 | <Loader | 84 | <Loader |
77 | loaded={!ctaLoading} | 85 | loaded={!ctaLoading} |
78 | lines={10} | 86 | lines={10} |
@@ -91,6 +99,7 @@ export default @observer class Infobox extends Component { | |||
91 | if (onDismiss) onDismiss(); | 99 | if (onDismiss) onDismiss(); |
92 | }} | 100 | }} |
93 | className="infobox__delete mdi mdi-close" | 101 | className="infobox__delete mdi mdi-close" |
102 | aria-label={intl.formatMessage(messages.dismiss)} | ||
94 | /> | 103 | /> |
95 | )} | 104 | )} |
96 | </div> | 105 | </div> |
diff --git a/src/components/ui/Input.js b/src/components/ui/Input.js index 4e3eb4ab8..7417fef1c 100644 --- a/src/components/ui/Input.js +++ b/src/components/ui/Input.js | |||
@@ -3,10 +3,20 @@ import PropTypes from 'prop-types'; | |||
3 | import { observer } from 'mobx-react'; | 3 | import { observer } from 'mobx-react'; |
4 | import { Field } from 'mobx-react-form'; | 4 | import { Field } from 'mobx-react-form'; |
5 | import classnames from 'classnames'; | 5 | import classnames from 'classnames'; |
6 | import { defineMessages, intlShape } from 'react-intl'; | ||
6 | 7 | ||
7 | import { scorePassword as scorePasswordFunc } from '../../helpers/password-helpers'; | 8 | import { scorePassword as scorePasswordFunc } from '../../helpers/password-helpers'; |
8 | 9 | ||
9 | export default @observer class Input extends Component { | 10 | const messages = defineMessages({ |
11 | passwordToggle: { | ||
12 | id: 'settings.app.form.passwordToggle', | ||
13 | defaultMessage: '!!!Password toggle', | ||
14 | }, | ||
15 | }); | ||
16 | |||
17 | export default | ||
18 | @observer | ||
19 | class Input extends Component { | ||
10 | static propTypes = { | 20 | static propTypes = { |
11 | field: PropTypes.instanceOf(Field).isRequired, | 21 | field: PropTypes.instanceOf(Field).isRequired, |
12 | className: PropTypes.string, | 22 | className: PropTypes.string, |
@@ -28,10 +38,14 @@ export default @observer class Input extends Component { | |||
28 | suffix: '', | 38 | suffix: '', |
29 | }; | 39 | }; |
30 | 40 | ||
41 | static contextTypes = { | ||
42 | intl: intlShape, | ||
43 | }; | ||
44 | |||
31 | state = { | 45 | state = { |
32 | showPassword: false, | 46 | showPassword: false, |
33 | passwordScore: 0, | 47 | passwordScore: 0, |
34 | } | 48 | }; |
35 | 49 | ||
36 | inputElement = null; | 50 | inputElement = null; |
37 | 51 | ||
@@ -68,6 +82,8 @@ export default @observer class Input extends Component { | |||
68 | 82 | ||
69 | const { passwordScore } = this.state; | 83 | const { passwordScore } = this.state; |
70 | 84 | ||
85 | const { intl } = this.context; | ||
86 | |||
71 | let { type } = field; | 87 | let { type } = field; |
72 | if (type === 'password' && this.state.showPassword) { | 88 | if (type === 'password' && this.state.showPassword) { |
73 | type = 'text'; | 89 | type = 'text'; |
@@ -82,9 +98,7 @@ export default @observer class Input extends Component { | |||
82 | })} | 98 | })} |
83 | > | 99 | > |
84 | <div className="franz-form__input-wrapper"> | 100 | <div className="franz-form__input-wrapper"> |
85 | {prefix && ( | 101 | {prefix && <span className="franz-form__input-prefix">{prefix}</span>} |
86 | <span className="franz-form__input-prefix">{prefix}</span> | ||
87 | )} | ||
88 | <input | 102 | <input |
89 | id={field.id} | 103 | id={field.id} |
90 | type={type} | 104 | type={type} |
@@ -92,15 +106,15 @@ export default @observer class Input extends Component { | |||
92 | name={field.name} | 106 | name={field.name} |
93 | value={field.value} | 107 | value={field.value} |
94 | placeholder={field.placeholder} | 108 | placeholder={field.placeholder} |
95 | onChange={e => this.onChange(e)} | 109 | onChange={(e) => this.onChange(e)} |
96 | onBlur={field.onBlur} | 110 | onBlur={field.onBlur} |
97 | onFocus={field.onFocus} | 111 | onFocus={field.onFocus} |
98 | ref={(element) => { this.inputElement = element; }} | 112 | ref={(element) => { |
113 | this.inputElement = element; | ||
114 | }} | ||
99 | disabled={field.disabled} | 115 | disabled={field.disabled} |
100 | /> | 116 | /> |
101 | {suffix && ( | 117 | {suffix && <span className="franz-form__input-suffix">{suffix}</span>} |
102 | <span className="franz-form__input-suffix">{suffix}</span> | ||
103 | )} | ||
104 | {showPasswordToggle && ( | 118 | {showPasswordToggle && ( |
105 | <button | 119 | <button |
106 | type="button" | 120 | type="button" |
@@ -110,8 +124,11 @@ export default @observer class Input extends Component { | |||
110 | 'mdi-eye': !this.state.showPassword, | 124 | 'mdi-eye': !this.state.showPassword, |
111 | 'mdi-eye-off': this.state.showPassword, | 125 | 'mdi-eye-off': this.state.showPassword, |
112 | })} | 126 | })} |
113 | onClick={() => this.setState(prevState => ({ showPassword: !prevState.showPassword }))} | 127 | onClick={() => this.setState((prevState) => ({ |
114 | tabIndex="-1" | 128 | showPassword: !prevState.showPassword, |
129 | }))} | ||
130 | tabIndex={-1} | ||
131 | aria-label={intl.formatMessage(messages.passwordToggle)} | ||
115 | /> | 132 | /> |
116 | )} | 133 | )} |
117 | {scorePassword && ( | 134 | {scorePassword && ( |
@@ -128,20 +145,11 @@ export default @observer class Input extends Component { | |||
128 | )} | 145 | )} |
129 | </div> | 146 | </div> |
130 | {field.label && showLabel && ( | 147 | {field.label && showLabel && ( |
131 | <label | 148 | <label className="franz-form__label" htmlFor={field.name}> |
132 | className="franz-form__label" | ||
133 | htmlFor={field.name} | ||
134 | > | ||
135 | {field.label} | 149 | {field.label} |
136 | </label> | 150 | </label> |
137 | )} | 151 | )} |
138 | {field.error && ( | 152 | {field.error && <div className="franz-form__error">{field.error}</div>} |
139 | <div | ||
140 | className="franz-form__error" | ||
141 | > | ||
142 | {field.error} | ||
143 | </div> | ||
144 | )} | ||
145 | </div> | 153 | </div> |
146 | ); | 154 | ); |
147 | } | 155 | } |
diff --git a/src/components/ui/Tabs/TabItem.js b/src/components/ui/Tabs/TabItem.js index 16881a7f7..546b05a4e 100644 --- a/src/components/ui/Tabs/TabItem.js +++ b/src/components/ui/Tabs/TabItem.js | |||
@@ -11,7 +11,7 @@ export default class TabItem extends Component { | |||
11 | const { children } = this.props; | 11 | const { children } = this.props; |
12 | 12 | ||
13 | return ( | 13 | return ( |
14 | <Fragment>{children}</Fragment> | 14 | <>{children}</> |
15 | ); | 15 | ); |
16 | } | 16 | } |
17 | } | 17 | } |
diff --git a/src/components/ui/Tabs/Tabs.js b/src/components/ui/Tabs/Tabs.js index 196cddc66..7ece29fbe 100644 --- a/src/components/ui/Tabs/Tabs.js +++ b/src/components/ui/Tabs/Tabs.js | |||
@@ -5,7 +5,9 @@ import classnames from 'classnames'; | |||
5 | 5 | ||
6 | import { oneOrManyChildElements } from '../../../prop-types'; | 6 | import { oneOrManyChildElements } from '../../../prop-types'; |
7 | 7 | ||
8 | export default @observer class Tab extends Component { | 8 | export default |
9 | @observer | ||
10 | class Tab extends Component { | ||
9 | static propTypes = { | 11 | static propTypes = { |
10 | children: oneOrManyChildElements.isRequired, | 12 | children: oneOrManyChildElements.isRequired, |
11 | active: PropTypes.number, | 13 | active: PropTypes.number, |
@@ -15,7 +17,7 @@ export default @observer class Tab extends Component { | |||
15 | active: 0, | 17 | active: 0, |
16 | }; | 18 | }; |
17 | 19 | ||
18 | componentWillMount() { | 20 | componentDidMount() { |
19 | this.setState({ active: this.props.active }); | 21 | this.setState({ active: this.props.active }); |
20 | } | 22 | } |
21 | 23 | ||
@@ -25,7 +27,7 @@ export default @observer class Tab extends Component { | |||
25 | 27 | ||
26 | render() { | 28 | render() { |
27 | const { children: childElements } = this.props; | 29 | const { children: childElements } = this.props; |
28 | const children = childElements.filter(c => !!c); | 30 | const children = childElements.filter((c) => !!c); |
29 | 31 | ||
30 | if (children.length === 1) { | 32 | if (children.length === 1) { |
31 | return <div>{children}</div>; | 33 | return <div>{children}</div>; |
diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js index 2c9cac084..db3b2a4a7 100644 --- a/src/containers/settings/AccountScreen.js +++ b/src/containers/settings/AccountScreen.js | |||
@@ -85,8 +85,7 @@ class AccountScreen extends Component { | |||
85 | openEditAccount={() => this.handleWebsiteLink('/user/profile')} | 85 | openEditAccount={() => this.handleWebsiteLink('/user/profile')} |
86 | upgradeToPro={() => upgradeAccount({ | 86 | upgradeToPro={() => upgradeAccount({ |
87 | planId: features.features.pricingConfig.plans.pro.yearly.id, | 87 | planId: features.features.pricingConfig.plans.pro.yearly.id, |
88 | }) | 88 | })} |
89 | } | ||
90 | openBilling={() => this.handleWebsiteLink('/user/billing')} | 89 | openBilling={() => this.handleWebsiteLink('/user/billing')} |
91 | openInvoices={() => this.handleWebsiteLink('/user/invoices')} | 90 | openInvoices={() => this.handleWebsiteLink('/user/invoices')} |
92 | /> | 91 | /> |
diff --git a/src/containers/settings/SettingsWindow.js b/src/containers/settings/SettingsWindow.js index 89c2aaa27..9bb64b6fe 100644 --- a/src/containers/settings/SettingsWindow.js +++ b/src/containers/settings/SettingsWindow.js | |||
@@ -28,7 +28,6 @@ export default @inject('stores', 'actions') @observer class SettingsContainer ex | |||
28 | const { children, stores } = this.props; | 28 | const { children, stores } = this.props; |
29 | const { closeSettings } = this.props.actions.ui; | 29 | const { closeSettings } = this.props.actions.ui; |
30 | 30 | ||
31 | |||
32 | const navigation = ( | 31 | const navigation = ( |
33 | <Navigation | 32 | <Navigation |
34 | serviceCount={stores.services.all.length} | 33 | serviceCount={stores.services.all.length} |
diff --git a/src/containers/subscription/SubscriptionPopupScreen.js b/src/containers/subscription/SubscriptionPopupScreen.js index 0de5a87c4..43966b6a4 100644 --- a/src/containers/subscription/SubscriptionPopupScreen.js +++ b/src/containers/subscription/SubscriptionPopupScreen.js | |||
@@ -5,7 +5,6 @@ import { inject, observer } from 'mobx-react'; | |||
5 | import SubscriptionPopup from '../../components/subscription/SubscriptionPopup'; | 5 | import SubscriptionPopup from '../../components/subscription/SubscriptionPopup'; |
6 | import { isDevMode } from '../../environment'; | 6 | import { isDevMode } from '../../environment'; |
7 | 7 | ||
8 | |||
9 | export default @inject('stores', 'actions') @observer class SubscriptionPopupScreen extends Component { | 8 | export default @inject('stores', 'actions') @observer class SubscriptionPopupScreen extends Component { |
10 | state = { | 9 | state = { |
11 | complete: false, | 10 | complete: false, |
@@ -33,7 +32,6 @@ export default @inject('stores', 'actions') @observer class SubscriptionPopupScr | |||
33 | } | 32 | } |
34 | } | 33 | } |
35 | 34 | ||
36 | |||
37 | SubscriptionPopupScreen.wrappedComponent.propTypes = { | 35 | SubscriptionPopupScreen.wrappedComponent.propTypes = { |
38 | router: PropTypes.shape({ | 36 | router: PropTypes.shape({ |
39 | params: PropTypes.shape({ | 37 | params: PropTypes.shape({ |
diff --git a/src/features/announcements/components/AnnouncementScreen.js b/src/features/announcements/components/AnnouncementScreen.js index 659cb4961..21964b108 100644 --- a/src/features/announcements/components/AnnouncementScreen.js +++ b/src/features/announcements/components/AnnouncementScreen.js | |||
@@ -185,7 +185,6 @@ const styles = theme => ({ | |||
185 | }, | 185 | }, |
186 | }); | 186 | }); |
187 | 187 | ||
188 | |||
189 | @inject('stores', 'actions') @injectSheet(styles) @observer | 188 | @inject('stores', 'actions') @injectSheet(styles) @observer |
190 | class AnnouncementScreen extends Component { | 189 | class AnnouncementScreen extends Component { |
191 | static propTypes = { | 190 | static propTypes = { |
diff --git a/src/features/announcements/index.js b/src/features/announcements/index.js index 369ded1b2..28f0b10ed 100644 --- a/src/features/announcements/index.js +++ b/src/features/announcements/index.js | |||
@@ -7,7 +7,6 @@ export const GA_CATEGORY_ANNOUNCEMENTS = 'Announcements'; | |||
7 | 7 | ||
8 | export const announcementsStore = new AnnouncementsStore(); | 8 | export const announcementsStore = new AnnouncementsStore(); |
9 | 9 | ||
10 | |||
11 | export default function initAnnouncements(stores, actions) { | 10 | export default function initAnnouncements(stores, actions) { |
12 | const { features } = stores; | 11 | const { features } = stores; |
13 | 12 | ||
diff --git a/src/features/delayApp/index.js b/src/features/delayApp/index.js index 5ef01a47e..f0c2bdc82 100644 --- a/src/features/delayApp/index.js +++ b/src/features/delayApp/index.js | |||
@@ -59,7 +59,6 @@ export default function init(stores) { | |||
59 | 59 | ||
60 | setVisibility(true); | 60 | setVisibility(true); |
61 | 61 | ||
62 | |||
63 | setTimeout(() => { | 62 | setTimeout(() => { |
64 | debug('Resetting app delay'); | 63 | debug('Resetting app delay'); |
65 | 64 | ||
diff --git a/src/features/planSelection/components/PlanItem.js b/src/features/planSelection/components/PlanItem.js index 3855fedf1..e90532dec 100644 --- a/src/features/planSelection/components/PlanItem.js +++ b/src/features/planSelection/components/PlanItem.js | |||
@@ -111,7 +111,6 @@ const styles = theme => ({ | |||
111 | }, | 111 | }, |
112 | }); | 112 | }); |
113 | 113 | ||
114 | |||
115 | export default @observer @injectSheet(styles) class PlanItem extends Component { | 114 | export default @observer @injectSheet(styles) class PlanItem extends Component { |
116 | static propTypes = { | 115 | static propTypes = { |
117 | name: PropTypes.string.isRequired, | 116 | name: PropTypes.string.isRequired, |
diff --git a/src/features/publishDebugInfo/Component.js b/src/features/publishDebugInfo/Component.js index 4308b8f09..e7949a0be 100644 --- a/src/features/publishDebugInfo/Component.js +++ b/src/features/publishDebugInfo/Component.js | |||
@@ -13,7 +13,6 @@ import { DEBUG_API } from '../../config'; | |||
13 | import AppStore from '../../stores/AppStore'; | 13 | import AppStore from '../../stores/AppStore'; |
14 | import ServicesStore from '../../stores/ServicesStore'; | 14 | import ServicesStore from '../../stores/ServicesStore'; |
15 | 15 | ||
16 | |||
17 | const messages = defineMessages({ | 16 | const messages = defineMessages({ |
18 | title: { | 17 | title: { |
19 | id: 'feature.publishDebugInfo.title', | 18 | id: 'feature.publishDebugInfo.title', |
diff --git a/src/features/serviceLimit/components/LimitReachedInfobox.js b/src/features/serviceLimit/components/LimitReachedInfobox.js index 83aec4c40..424c92990 100644 --- a/src/features/serviceLimit/components/LimitReachedInfobox.js +++ b/src/features/serviceLimit/components/LimitReachedInfobox.js | |||
@@ -34,7 +34,6 @@ const styles = theme => ({ | |||
34 | }, | 34 | }, |
35 | }); | 35 | }); |
36 | 36 | ||
37 | |||
38 | @inject('stores', 'actions') @injectSheet(styles) @observer | 37 | @inject('stores', 'actions') @injectSheet(styles) @observer |
39 | class LimitReachedInfobox extends Component { | 38 | class LimitReachedInfobox extends Component { |
40 | static propTypes = { | 39 | static propTypes = { |
diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js index dccb818a6..ca8460f94 100644 --- a/src/features/todos/components/TodosWebview.js +++ b/src/features/todos/components/TodosWebview.js | |||
@@ -7,7 +7,7 @@ import classnames from 'classnames'; | |||
7 | 7 | ||
8 | import { TODOS_PARTITION_ID } from '../../../config'; | 8 | import { TODOS_PARTITION_ID } from '../../../config'; |
9 | 9 | ||
10 | const styles = theme => ({ | 10 | const styles = (theme) => ({ |
11 | root: { | 11 | root: { |
12 | background: theme.colorBackground, | 12 | background: theme.colorBackground, |
13 | position: 'relative', | 13 | position: 'relative', |
@@ -34,7 +34,6 @@ const styles = theme => ({ | |||
34 | width: 5, | 34 | width: 5, |
35 | zIndex: 400, | 35 | zIndex: 400, |
36 | background: theme.todos.dragIndicator.background, | 36 | background: theme.todos.dragIndicator.background, |
37 | |||
38 | }, | 37 | }, |
39 | premiumContainer: { | 38 | premiumContainer: { |
40 | display: 'flex', | 39 | display: 'flex', |
@@ -68,7 +67,8 @@ const styles = theme => ({ | |||
68 | }, | 67 | }, |
69 | }); | 68 | }); |
70 | 69 | ||
71 | @injectSheet(styles) @observer | 70 | @injectSheet(styles) |
71 | @observer | ||
72 | class TodosWebview extends Component { | 72 | class TodosWebview extends Component { |
73 | static propTypes = { | 73 | static propTypes = { |
74 | classes: PropTypes.object.isRequired, | 74 | classes: PropTypes.object.isRequired, |
@@ -89,15 +89,11 @@ class TodosWebview extends Component { | |||
89 | width: 300, | 89 | width: 300, |
90 | }; | 90 | }; |
91 | 91 | ||
92 | componentWillMount() { | 92 | componentDidMount() { |
93 | const { width } = this.props; | ||
94 | |||
95 | this.setState({ | 93 | this.setState({ |
96 | width, | 94 | width: this.props.width, |
97 | }); | 95 | }); |
98 | } | ||
99 | 96 | ||
100 | componentDidMount() { | ||
101 | this.node.addEventListener('mousemove', this.resizePanel.bind(this)); | 97 | this.node.addEventListener('mousemove', this.resizePanel.bind(this)); |
102 | this.node.addEventListener('mouseup', this.stopResize.bind(this)); | 98 | this.node.addEventListener('mouseup', this.stopResize.bind(this)); |
103 | this.node.addEventListener('mouseleave', this.stopResize.bind(this)); | 99 | this.node.addEventListener('mouseleave', this.stopResize.bind(this)); |
@@ -114,10 +110,7 @@ class TodosWebview extends Component { | |||
114 | resizePanel(e) { | 110 | resizePanel(e) { |
115 | const { minWidth } = this.props; | 111 | const { minWidth } = this.props; |
116 | 112 | ||
117 | const { | 113 | const { isDragging, initialPos } = this.state; |
118 | isDragging, | ||
119 | initialPos, | ||
120 | } = this.state; | ||
121 | 114 | ||
122 | if (isDragging && Math.abs(e.clientX - window.innerWidth) > minWidth) { | 115 | if (isDragging && Math.abs(e.clientX - window.innerWidth) > minWidth) { |
123 | const delta = e.clientX - initialPos; | 116 | const delta = e.clientX - initialPos; |
@@ -129,16 +122,9 @@ class TodosWebview extends Component { | |||
129 | } | 122 | } |
130 | 123 | ||
131 | stopResize() { | 124 | stopResize() { |
132 | const { | 125 | const { resize, minWidth } = this.props; |
133 | resize, | ||
134 | minWidth, | ||
135 | } = this.props; | ||
136 | 126 | ||
137 | const { | 127 | const { isDragging, delta, width } = this.state; |
138 | isDragging, | ||
139 | delta, | ||
140 | width, | ||
141 | } = this.state; | ||
142 | 128 | ||
143 | if (isDragging) { | 129 | if (isDragging) { |
144 | let newWidth = width + (delta < 0 ? Math.abs(delta) : -Math.abs(delta)); | 130 | let newWidth = width + (delta < 0 ? Math.abs(delta) : -Math.abs(delta)); |
@@ -176,11 +162,7 @@ class TodosWebview extends Component { | |||
176 | isTodoUrlValid, | 162 | isTodoUrlValid, |
177 | } = this.props; | 163 | } = this.props; |
178 | 164 | ||
179 | const { | 165 | const { width, delta, isDragging } = this.state; |
180 | width, | ||
181 | delta, | ||
182 | isDragging, | ||
183 | } = this.state; | ||
184 | 166 | ||
185 | let displayedWidth = isVisible ? width : 0; | 167 | let displayedWidth = isVisible ? width : 0; |
186 | if (isTodosServiceActive) { | 168 | if (isTodosServiceActive) { |
@@ -197,13 +179,18 @@ class TodosWebview extends Component { | |||
197 | })} | 179 | })} |
198 | style={{ width: displayedWidth }} | 180 | style={{ width: displayedWidth }} |
199 | onMouseUp={() => this.stopResize()} | 181 | onMouseUp={() => this.stopResize()} |
200 | ref={(node) => { this.node = node; }} | 182 | ref={(node) => { |
183 | this.node = node; | ||
184 | }} | ||
201 | id="todos-panel" | 185 | id="todos-panel" |
202 | > | 186 | > |
203 | <div | 187 | <div |
204 | className={classes.resizeHandler} | 188 | className={classes.resizeHandler} |
205 | style={Object.assign({ left: delta }, isDragging ? { width: 600, marginLeft: -200 } : {})} // This hack is required as resizing with webviews beneath behaves quite bad | 189 | style={{ |
206 | onMouseDown={e => this.startResize(e)} | 190 | left: delta, |
191 | ...(isDragging ? { width: 600, marginLeft: -200 } : {}), | ||
192 | }} // This hack is required as resizing with webviews beneath behaves quite bad | ||
193 | onMouseDown={(e) => this.startResize(e)} | ||
207 | /> | 194 | /> |
208 | {isDragging && ( | 195 | {isDragging && ( |
209 | <div | 196 | <div |
@@ -221,7 +208,9 @@ class TodosWebview extends Component { | |||
221 | }} | 208 | }} |
222 | partition={TODOS_PARTITION_ID} | 209 | partition={TODOS_PARTITION_ID} |
223 | preload="./features/todos/preload.js" | 210 | preload="./features/todos/preload.js" |
224 | ref={(webview) => { this.webview = webview ? webview.view : null; }} | 211 | ref={(webview) => { |
212 | this.webview = webview ? webview.view : null; | ||
213 | }} | ||
225 | useragent={userAgent} | 214 | useragent={userAgent} |
226 | src={todoUrl} | 215 | src={todoUrl} |
227 | /> | 216 | /> |
diff --git a/src/features/trialStatusBar/containers/TrialStatusBarScreen.js b/src/features/trialStatusBar/containers/TrialStatusBarScreen.js index 715251854..e0f5ab5f2 100644 --- a/src/features/trialStatusBar/containers/TrialStatusBarScreen.js +++ b/src/features/trialStatusBar/containers/TrialStatusBarScreen.js | |||
@@ -12,7 +12,8 @@ import { trialStatusBarStore } from '..'; | |||
12 | import { i18nPlanName } from '../../../helpers/plan-helpers'; | 12 | import { i18nPlanName } from '../../../helpers/plan-helpers'; |
13 | import PaymentStore from '../../../stores/PaymentStore'; | 13 | import PaymentStore from '../../../stores/PaymentStore'; |
14 | 14 | ||
15 | @inject('stores', 'actions') @observer | 15 | @inject('stores', 'actions') |
16 | @observer | ||
16 | class TrialStatusBarScreen extends Component { | 17 | class TrialStatusBarScreen extends Component { |
17 | static contextTypes = { | 18 | static contextTypes = { |
18 | intl: intlShape, | 19 | intl: intlShape, |
@@ -41,7 +42,9 @@ class TrialStatusBarScreen extends Component { | |||
41 | 42 | ||
42 | calculateRestTime() { | 43 | calculateRestTime() { |
43 | const { trialEndTime } = trialStatusBarStore; | 44 | const { trialEndTime } = trialStatusBarStore; |
44 | const percent = Math.abs(100 - Math.abs(trialEndTime.asMilliseconds()) * 100 / ms('14d')).toFixed(2); | 45 | const percent = ( |
46 | Math.abs(100 - Math.abs(trialEndTime.asMilliseconds()) * 100) / ms('14d') | ||
47 | ).toFixed(2); | ||
45 | const restTime = trialEndTime.humanize(); | 48 | const restTime = trialEndTime.humanize(); |
46 | const hasEnded = trialEndTime.asMilliseconds() > 0; | 49 | const hasEnded = trialEndTime.asMilliseconds() > 0; |
47 | 50 | ||
@@ -58,18 +61,19 @@ class TrialStatusBarScreen extends Component { | |||
58 | }); | 61 | }); |
59 | } | 62 | } |
60 | 63 | ||
61 | |||
62 | render() { | 64 | render() { |
63 | const { intl } = this.context; | 65 | const { intl } = this.context; |
64 | 66 | ||
65 | const { | 67 | const { |
66 | showOverlay, | 68 | showOverlay, percent, restTime, hasEnded, |
67 | percent, | ||
68 | restTime, | ||
69 | hasEnded, | ||
70 | } = this.state; | 69 | } = this.state; |
71 | 70 | ||
72 | if (!trialStatusBarStore || !trialStatusBarStore.isFeatureActive || !showOverlay || !trialStatusBarStore.showTrialStatusBarOverlay) { | 71 | if ( |
72 | !trialStatusBarStore | ||
73 | || !trialStatusBarStore.isFeatureActive | ||
74 | || !showOverlay | ||
75 | || !trialStatusBarStore.showTrialStatusBarOverlay | ||
76 | ) { | ||
73 | return null; | 77 | return null; |
74 | } | 78 | } |
75 | 79 | ||
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js index f23bc6cbf..0ff836cba 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.js +++ b/src/features/workspaces/components/EditWorkspaceForm.js | |||
@@ -40,7 +40,8 @@ const messages = defineMessages({ | |||
40 | }, | 40 | }, |
41 | keepLoadedInfo: { | 41 | keepLoadedInfo: { |
42 | id: 'settings.workspace.form.keepLoadedInfo', | 42 | id: 'settings.workspace.form.keepLoadedInfo', |
43 | defaultMessage: '!!!*This option will be overwritten by the global "Keep all workspaces loaded" option.', | 43 | defaultMessage: |
44 | '!!!*This option will be overwritten by the global "Keep all workspaces loaded" option.', | ||
44 | }, | 45 | }, |
45 | servicesInWorkspaceHeadline: { | 46 | servicesInWorkspaceHeadline: { |
46 | id: 'settings.workspace.form.servicesInWorkspaceHeadline', | 47 | id: 'settings.workspace.form.servicesInWorkspaceHeadline', |
@@ -68,7 +69,8 @@ const styles = () => ({ | |||
68 | }, | 69 | }, |
69 | }); | 70 | }); |
70 | 71 | ||
71 | @injectSheet(styles) @observer | 72 | @injectSheet(styles) |
73 | @observer | ||
72 | class EditWorkspaceForm extends Component { | 74 | class EditWorkspaceForm extends Component { |
73 | static contextTypes = { | 75 | static contextTypes = { |
74 | intl: intlShape, | 76 | intl: intlShape, |
@@ -86,6 +88,7 @@ class EditWorkspaceForm extends Component { | |||
86 | 88 | ||
87 | form = this.prepareWorkspaceForm(this.props.workspace); | 89 | form = this.prepareWorkspaceForm(this.props.workspace); |
88 | 90 | ||
91 | // eslint-disable-next-line react/no-deprecated | ||
89 | componentWillReceiveProps(nextProps) { | 92 | componentWillReceiveProps(nextProps) { |
90 | const { workspace } = this.props; | 93 | const { workspace } = this.props; |
91 | if (workspace.id !== nextProps.workspace.id) { | 94 | if (workspace.id !== nextProps.workspace.id) { |
@@ -164,16 +167,14 @@ class EditWorkspaceForm extends Component { | |||
164 | </Link> | 167 | </Link> |
165 | </span> | 168 | </span> |
166 | <span className="separator" /> | 169 | <span className="separator" /> |
167 | <span className="settings__header-item"> | 170 | <span className="settings__header-item">{workspace.name}</span> |
168 | {workspace.name} | ||
169 | </span> | ||
170 | </div> | 171 | </div> |
171 | <div className="settings__body"> | 172 | <div className="settings__body"> |
172 | <div className={classes.nameInput}> | 173 | <div className={classes.nameInput}> |
173 | <Input {...form.$('name').bind()} /> | 174 | <Input {...form.$('name').bind()} /> |
174 | <Toggle field={form.$('keepLoaded')} /> | 175 | <Toggle field={form.$('keepLoaded')} /> |
175 | <p className={`${classes.keepLoadedInfo} franz-form__label`}> | 176 | <p className={`${classes.keepLoadedInfo} franz-form__label`}> |
176 | { intl.formatMessage(messages.keepLoadedInfo) } | 177 | {intl.formatMessage(messages.keepLoadedInfo)} |
177 | </p> | 178 | </p> |
178 | </div> | 179 | </div> |
179 | <h2>{intl.formatMessage(messages.servicesInWorkspaceHeadline)}</h2> | 180 | <h2>{intl.formatMessage(messages.servicesInWorkspaceHeadline)}</h2> |
@@ -187,11 +188,13 @@ class EditWorkspaceForm extends Component { | |||
187 | </span> | 188 | </span> |
188 | {intl.formatMessage(messages.noServicesAdded)} | 189 | {intl.formatMessage(messages.noServicesAdded)} |
189 | </p> | 190 | </p> |
190 | <Link to="/settings/recipes" className="button">{intl.formatMessage(messages.discoverServices)}</Link> | 191 | <Link to="/settings/recipes" className="button"> |
192 | {intl.formatMessage(messages.discoverServices)} | ||
193 | </Link> | ||
191 | </div> | 194 | </div> |
192 | ) : ( | 195 | ) : ( |
193 | <Fragment> | 196 | <> |
194 | {services.map(s => ( | 197 | {services.map((s) => ( |
195 | <WorkspaceServiceListItem | 198 | <WorkspaceServiceListItem |
196 | key={s.id} | 199 | key={s.id} |
197 | service={s} | 200 | service={s} |
@@ -199,7 +202,7 @@ class EditWorkspaceForm extends Component { | |||
199 | onToggle={() => this.toggleService(s)} | 202 | onToggle={() => this.toggleService(s)} |
200 | /> | 203 | /> |
201 | ))} | 204 | ))} |
202 | </Fragment> | 205 | </> |
203 | )} | 206 | )} |
204 | </div> | 207 | </div> |
205 | </div> | 208 | </div> |
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js index a90bb37e9..cfaacd56e 100644 --- a/src/features/workspaces/components/WorkspacesDashboard.js +++ b/src/features/workspaces/components/WorkspacesDashboard.js | |||
@@ -184,7 +184,7 @@ class WorkspacesDashboard extends Component { | |||
184 | {getUserWorkspacesRequest.isExecuting ? ( | 184 | {getUserWorkspacesRequest.isExecuting ? ( |
185 | <Loader /> | 185 | <Loader /> |
186 | ) : ( | 186 | ) : ( |
187 | <Fragment> | 187 | <> |
188 | {/* ===== Workspace could not be loaded error ===== */} | 188 | {/* ===== Workspace could not be loaded error ===== */} |
189 | {getUserWorkspacesRequest.error ? ( | 189 | {getUserWorkspacesRequest.error ? ( |
190 | <Infobox | 190 | <Infobox |
@@ -197,7 +197,7 @@ class WorkspacesDashboard extends Component { | |||
197 | {intl.formatMessage(messages.workspacesRequestFailed)} | 197 | {intl.formatMessage(messages.workspacesRequestFailed)} |
198 | </Infobox> | 198 | </Infobox> |
199 | ) : ( | 199 | ) : ( |
200 | <Fragment> | 200 | <> |
201 | {workspaces.length === 0 ? ( | 201 | {workspaces.length === 0 ? ( |
202 | <div className="align-middle settings__empty-state"> | 202 | <div className="align-middle settings__empty-state"> |
203 | {/* ===== Workspaces empty state ===== */} | 203 | {/* ===== Workspaces empty state ===== */} |
@@ -222,9 +222,9 @@ class WorkspacesDashboard extends Component { | |||
222 | </tbody> | 222 | </tbody> |
223 | </table> | 223 | </table> |
224 | )} | 224 | )} |
225 | </Fragment> | 225 | </> |
226 | )} | 226 | )} |
227 | </Fragment> | 227 | </> |
228 | )} | 228 | )} |
229 | </> | 229 | </> |
230 | )} | 230 | )} |
diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index 5eca71259..ba7606031 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js | |||
@@ -32,9 +32,7 @@ class EditWorkspaceScreen extends Component { | |||
32 | const { workspaceBeingEdited } = workspaceStore; | 32 | const { workspaceBeingEdited } = workspaceStore; |
33 | const { actions } = this.props; | 33 | const { actions } = this.props; |
34 | const workspace = new Workspace( | 34 | const workspace = new Workspace( |
35 | Object.assign({ | 35 | ({ saving: true, ...workspaceBeingEdited, ...values }), |
36 | saving: true, | ||
37 | }, workspaceBeingEdited, values), | ||
38 | ); | 36 | ); |
39 | actions.workspaces.update({ workspace }); | 37 | actions.workspaces.update({ workspace }); |
40 | }; | 38 | }; |
diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index bddcb6eb4..632f3c299 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js | |||
@@ -1,8 +1,4 @@ | |||
1 | import { | 1 | import { computed, observable, action } from 'mobx'; |
2 | computed, | ||
3 | observable, | ||
4 | action, | ||
5 | } from 'mobx'; | ||
6 | import localStorage from 'mobx-localstorage'; | 2 | import localStorage from 'mobx-localstorage'; |
7 | import { matchRoute } from '../../helpers/routing-helpers'; | 3 | import { matchRoute } from '../../helpers/routing-helpers'; |
8 | import { workspaceActions } from './actions'; | 4 | import { workspaceActions } from './actions'; |
@@ -105,7 +101,10 @@ export default class WorkspacesStore extends FeatureStore { | |||
105 | [workspaceActions.update, this._update], | 101 | [workspaceActions.update, this._update], |
106 | [workspaceActions.activate, this._setActiveWorkspace], | 102 | [workspaceActions.activate, this._setActiveWorkspace], |
107 | [workspaceActions.deactivate, this._deactivateActiveWorkspace], | 103 | [workspaceActions.deactivate, this._deactivateActiveWorkspace], |
108 | [workspaceActions.toggleKeepAllWorkspacesLoadedSetting, this._toggleKeepAllWorkspacesLoadedSetting], | 104 | [ |
105 | workspaceActions.toggleKeepAllWorkspacesLoadedSetting, | ||
106 | this._toggleKeepAllWorkspacesLoadedSetting, | ||
107 | ], | ||
109 | ]); | 108 | ]); |
110 | this._allActions = this._freeUserActions.concat(this._premiumUserActions); | 109 | this._allActions = this._freeUserActions.concat(this._premiumUserActions); |
111 | this._registerActions(this._allActions); | 110 | this._registerActions(this._allActions); |
@@ -124,7 +123,9 @@ export default class WorkspacesStore extends FeatureStore { | |||
124 | this._activateLastUsedWorkspaceReaction, | 123 | this._activateLastUsedWorkspaceReaction, |
125 | this._setWorkspaceBeingEditedReaction, | 124 | this._setWorkspaceBeingEditedReaction, |
126 | ]); | 125 | ]); |
127 | this._allReactions = this._freeUserReactions.concat(this._premiumUserReactions); | 126 | this._allReactions = this._freeUserReactions.concat( |
127 | this._premiumUserReactions, | ||
128 | ); | ||
128 | 129 | ||
129 | this._registerReactions(this._allReactions); | 130 | this._registerReactions(this._allReactions); |
130 | 131 | ||
@@ -157,12 +158,12 @@ export default class WorkspacesStore extends FeatureStore { | |||
157 | 158 | ||
158 | getWorkspaceServices(workspace) { | 159 | getWorkspaceServices(workspace) { |
159 | const { services } = this.stores; | 160 | const { services } = this.stores; |
160 | return workspace.services.map(id => services.one(id)).filter(s => !!s); | 161 | return workspace.services.map((id) => services.one(id)).filter((s) => !!s); |
161 | } | 162 | } |
162 | 163 | ||
163 | // ========== PRIVATE METHODS ========= // | 164 | // ========== PRIVATE METHODS ========= // |
164 | 165 | ||
165 | _getWorkspaceById = id => this.workspaces.find(w => w.id === id); | 166 | _getWorkspaceById = (id) => this.workspaces.find((w) => w.id === id); |
166 | 167 | ||
167 | _updateSettings = (changes) => { | 168 | _updateSettings = (changes) => { |
168 | localStorage.setItem('workspaces', { | 169 | localStorage.setItem('workspaces', { |
@@ -178,6 +179,7 @@ export default class WorkspacesStore extends FeatureStore { | |||
178 | }; | 179 | }; |
179 | 180 | ||
180 | @action _create = async ({ name }) => { | 181 | @action _create = async ({ name }) => { |
182 | // eslint-disable-next-line no-useless-catch | ||
181 | try { | 183 | try { |
182 | const workspace = await createWorkspaceRequest.execute(name); | 184 | const workspace = await createWorkspaceRequest.execute(name); |
183 | await getUserWorkspacesRequest.result.push(workspace); | 185 | await getUserWorkspacesRequest.result.push(workspace); |
@@ -188,6 +190,7 @@ export default class WorkspacesStore extends FeatureStore { | |||
188 | }; | 190 | }; |
189 | 191 | ||
190 | @action _delete = async ({ workspace }) => { | 192 | @action _delete = async ({ workspace }) => { |
193 | // eslint-disable-next-line no-useless-catch | ||
191 | try { | 194 | try { |
192 | await deleteWorkspaceRequest.execute(workspace); | 195 | await deleteWorkspaceRequest.execute(workspace); |
193 | await getUserWorkspacesRequest.result.remove(workspace); | 196 | await getUserWorkspacesRequest.result.remove(workspace); |
@@ -198,6 +201,7 @@ export default class WorkspacesStore extends FeatureStore { | |||
198 | }; | 201 | }; |
199 | 202 | ||
200 | @action _update = async ({ workspace }) => { | 203 | @action _update = async ({ workspace }) => { |
204 | // eslint-disable-next-line no-useless-catch | ||
201 | try { | 205 | try { |
202 | await updateWorkspaceRequest.execute(workspace); | 206 | await updateWorkspaceRequest.execute(workspace); |
203 | // Path local result optimistically | 207 | // Path local result optimistically |
@@ -235,7 +239,9 @@ export default class WorkspacesStore extends FeatureStore { | |||
235 | this.activeWorkspace = null; | 239 | this.activeWorkspace = null; |
236 | }, 100); | 240 | }, 100); |
237 | // Indicate that we are done switching to the default workspace | 241 | // Indicate that we are done switching to the default workspace |
238 | setTimeout(() => { this.isSwitchingWorkspace = false; }, 1000); | 242 | setTimeout(() => { |
243 | this.isSwitchingWorkspace = false; | ||
244 | }, 1000); | ||
239 | }; | 245 | }; |
240 | 246 | ||
241 | @action _toggleWorkspaceDrawer = () => { | 247 | @action _toggleWorkspaceDrawer = () => { |
@@ -255,7 +261,9 @@ export default class WorkspacesStore extends FeatureStore { | |||
255 | }; | 261 | }; |
256 | 262 | ||
257 | _toggleKeepAllWorkspacesLoadedSetting = async () => { | 263 | _toggleKeepAllWorkspacesLoadedSetting = async () => { |
258 | this._updateSettings({ keepAllWorkspacesLoaded: !this.settings.keepAllWorkspacesLoaded }); | 264 | this._updateSettings({ |
265 | keepAllWorkspacesLoaded: !this.settings.keepAllWorkspacesLoaded, | ||
266 | }); | ||
259 | }; | 267 | }; |
260 | 268 | ||
261 | // Reactions | 269 | // Reactions |
@@ -309,7 +317,9 @@ export default class WorkspacesStore extends FeatureStore { | |||
309 | 317 | ||
310 | _openDrawerWithSettingsReaction = () => { | 318 | _openDrawerWithSettingsReaction = () => { |
311 | const { router } = this.stores; | 319 | const { router } = this.stores; |
312 | const isWorkspaceSettingsRoute = router.location.pathname.includes(WORKSPACES_ROUTES.ROOT); | 320 | const isWorkspaceSettingsRoute = router.location.pathname.includes( |
321 | WORKSPACES_ROUTES.ROOT, | ||
322 | ); | ||
313 | const isSwitchingToSettingsRoute = !this.isSettingsRouteActive && isWorkspaceSettingsRoute; | 323 | const isSwitchingToSettingsRoute = !this.isSettingsRouteActive && isWorkspaceSettingsRoute; |
314 | const isLeavingSettingsRoute = !isWorkspaceSettingsRoute && this.isSettingsRouteActive; | 324 | const isLeavingSettingsRoute = !isWorkspaceSettingsRoute && this.isSettingsRouteActive; |
315 | 325 | ||
@@ -321,7 +331,10 @@ export default class WorkspacesStore extends FeatureStore { | |||
321 | } | 331 | } |
322 | } else if (isLeavingSettingsRoute) { | 332 | } else if (isLeavingSettingsRoute) { |
323 | this.isSettingsRouteActive = false; | 333 | this.isSettingsRouteActive = false; |
324 | if (!this._wasDrawerOpenBeforeSettingsRoute && this.isWorkspaceDrawerOpen) { | 334 | if ( |
335 | !this._wasDrawerOpenBeforeSettingsRoute | ||
336 | && this.isWorkspaceDrawerOpen | ||
337 | ) { | ||
325 | workspaceActions.toggleWorkspaceDrawer(); | 338 | workspaceActions.toggleWorkspaceDrawer(); |
326 | } | 339 | } |
327 | } | 340 | } |
@@ -334,7 +347,11 @@ export default class WorkspacesStore extends FeatureStore { | |||
334 | // Loop through all workspaces and remove invalid service ids (locally) | 347 | // Loop through all workspaces and remove invalid service ids (locally) |
335 | this.workspaces.forEach((workspace) => { | 348 | this.workspaces.forEach((workspace) => { |
336 | workspace.services.forEach((serviceId) => { | 349 | workspace.services.forEach((serviceId) => { |
337 | if (servicesHaveBeenLoaded && !services.one(serviceId) && serviceId !== KEEP_WS_LOADED_USID) { | 350 | if ( |
351 | servicesHaveBeenLoaded | ||
352 | && !services.one(serviceId) | ||
353 | && serviceId !== KEEP_WS_LOADED_USID | ||
354 | ) { | ||
338 | workspace.services.remove(serviceId); | 355 | workspace.services.remove(serviceId); |
339 | } | 356 | } |
340 | }); | 357 | }); |
@@ -351,5 +368,5 @@ export default class WorkspacesStore extends FeatureStore { | |||
351 | this._startActions(this._premiumUserActions); | 368 | this._startActions(this._premiumUserActions); |
352 | this._startReactions(this._premiumUserReactions); | 369 | this._startReactions(this._premiumUserReactions); |
353 | } | 370 | } |
354 | } | 371 | }; |
355 | } | 372 | } |
diff --git a/src/i18n/apply-branding.js b/src/i18n/apply-branding.js index 68ffb822a..40a07ded0 100644 --- a/src/i18n/apply-branding.js +++ b/src/i18n/apply-branding.js | |||
@@ -36,7 +36,6 @@ const replace = { | |||
36 | '!!!': '', | 36 | '!!!': '', |
37 | }; | 37 | }; |
38 | 38 | ||
39 | |||
40 | const locales = path.join(__dirname, 'locales'); | 39 | const locales = path.join(__dirname, 'locales'); |
41 | const files = fs.readdirSync(locales); | 40 | const files = fs.readdirSync(locales); |
42 | 41 | ||
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 8401184de..4ee96822e 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json | |||
@@ -664,169 +664,169 @@ | |||
664 | "defaultMessage": "!!!Hi {name}, welcome to Franz", | 664 | "defaultMessage": "!!!Hi {name}, welcome to Franz", |
665 | "end": { | 665 | "end": { |
666 | "column": 3, | 666 | "column": 3, |
667 | "line": 18 | 667 | "line": 17 |
668 | }, | 668 | }, |
669 | "file": "src/components/auth/Pricing.js", | 669 | "file": "src/components/auth/Pricing.js", |
670 | "id": "pricing.trial.headline.pro", | 670 | "id": "pricing.trial.headline.pro", |
671 | "start": { | 671 | "start": { |
672 | "column": 12, | 672 | "column": 12, |
673 | "line": 15 | 673 | "line": 14 |
674 | } | 674 | } |
675 | }, | 675 | }, |
676 | { | 676 | { |
677 | "defaultMessage": "!!!We have a special treat for you.", | 677 | "defaultMessage": "!!!We have a special treat for you.", |
678 | "end": { | 678 | "end": { |
679 | "column": 3, | 679 | "column": 3, |
680 | "line": 22 | 680 | "line": 21 |
681 | }, | 681 | }, |
682 | "file": "src/components/auth/Pricing.js", | 682 | "file": "src/components/auth/Pricing.js", |
683 | "id": "pricing.trial.intro.specialTreat", | 683 | "id": "pricing.trial.intro.specialTreat", |
684 | "start": { | 684 | "start": { |
685 | "column": 16, | 685 | "column": 16, |
686 | "line": 19 | 686 | "line": 18 |
687 | } | 687 | } |
688 | }, | 688 | }, |
689 | { | 689 | { |
690 | "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", | 690 | "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", |
691 | "end": { | 691 | "end": { |
692 | "column": 3, | 692 | "column": 3, |
693 | "line": 26 | 693 | "line": 25 |
694 | }, | 694 | }, |
695 | "file": "src/components/auth/Pricing.js", | 695 | "file": "src/components/auth/Pricing.js", |
696 | "id": "pricing.trial.intro.tryPro", | 696 | "id": "pricing.trial.intro.tryPro", |
697 | "start": { | 697 | "start": { |
698 | "column": 10, | 698 | "column": 10, |
699 | "line": 23 | 699 | "line": 22 |
700 | } | 700 | } |
701 | }, | 701 | }, |
702 | { | 702 | { |
703 | "defaultMessage": "!!!Happy messaging,", | 703 | "defaultMessage": "!!!Happy messaging,", |
704 | "end": { | 704 | "end": { |
705 | "column": 3, | 705 | "column": 3, |
706 | "line": 30 | 706 | "line": 29 |
707 | }, | 707 | }, |
708 | "file": "src/components/auth/Pricing.js", | 708 | "file": "src/components/auth/Pricing.js", |
709 | "id": "pricing.trial.intro.happyMessaging", | 709 | "id": "pricing.trial.intro.happyMessaging", |
710 | "start": { | 710 | "start": { |
711 | "column": 18, | 711 | "column": 18, |
712 | "line": 27 | 712 | "line": 26 |
713 | } | 713 | } |
714 | }, | 714 | }, |
715 | { | 715 | { |
716 | "defaultMessage": "!!!No strings attached", | 716 | "defaultMessage": "!!!No strings attached", |
717 | "end": { | 717 | "end": { |
718 | "column": 3, | 718 | "column": 3, |
719 | "line": 34 | 719 | "line": 33 |
720 | }, | 720 | }, |
721 | "file": "src/components/auth/Pricing.js", | 721 | "file": "src/components/auth/Pricing.js", |
722 | "id": "pricing.trial.terms.headline", | 722 | "id": "pricing.trial.terms.headline", |
723 | "start": { | 723 | "start": { |
724 | "column": 29, | 724 | "column": 29, |
725 | "line": 31 | 725 | "line": 30 |
726 | } | 726 | } |
727 | }, | 727 | }, |
728 | { | 728 | { |
729 | "defaultMessage": "!!!No credit card required", | 729 | "defaultMessage": "!!!No credit card required", |
730 | "end": { | 730 | "end": { |
731 | "column": 3, | 731 | "column": 3, |
732 | "line": 38 | 732 | "line": 37 |
733 | }, | 733 | }, |
734 | "file": "src/components/auth/Pricing.js", | 734 | "file": "src/components/auth/Pricing.js", |
735 | "id": "pricing.trial.terms.noCreditCard", | 735 | "id": "pricing.trial.terms.noCreditCard", |
736 | "start": { | 736 | "start": { |
737 | "column": 16, | 737 | "column": 16, |
738 | "line": 35 | 738 | "line": 34 |
739 | } | 739 | } |
740 | }, | 740 | }, |
741 | { | 741 | { |
742 | "defaultMessage": "!!!Your free trial ends automatically after 14 days", | 742 | "defaultMessage": "!!!Your free trial ends automatically after 14 days", |
743 | "end": { | 743 | "end": { |
744 | "column": 3, | 744 | "column": 3, |
745 | "line": 42 | 745 | "line": 41 |
746 | }, | 746 | }, |
747 | "file": "src/components/auth/Pricing.js", | 747 | "file": "src/components/auth/Pricing.js", |
748 | "id": "pricing.trial.terms.automaticTrialEnd", | 748 | "id": "pricing.trial.terms.automaticTrialEnd", |
749 | "start": { | 749 | "start": { |
750 | "column": 21, | 750 | "column": 21, |
751 | "line": 39 | 751 | "line": 38 |
752 | } | 752 | } |
753 | }, | 753 | }, |
754 | { | 754 | { |
755 | "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", | 755 | "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", |
756 | "end": { | 756 | "end": { |
757 | "column": 3, | 757 | "column": 3, |
758 | "line": 46 | 758 | "line": 45 |
759 | }, | 759 | }, |
760 | "file": "src/components/auth/Pricing.js", | 760 | "file": "src/components/auth/Pricing.js", |
761 | "id": "pricing.trial.terms.trialWorth", | 761 | "id": "pricing.trial.terms.trialWorth", |
762 | "start": { | 762 | "start": { |
763 | "column": 14, | 763 | "column": 14, |
764 | "line": 43 | 764 | "line": 42 |
765 | } | 765 | } |
766 | }, | 766 | }, |
767 | { | 767 | { |
768 | "defaultMessage": "!!!Sorry, we could not activate your trial!", | 768 | "defaultMessage": "!!!Sorry, we could not activate your trial!", |
769 | "end": { | 769 | "end": { |
770 | "column": 3, | 770 | "column": 3, |
771 | "line": 50 | 771 | "line": 49 |
772 | }, | 772 | }, |
773 | "file": "src/components/auth/Pricing.js", | 773 | "file": "src/components/auth/Pricing.js", |
774 | "id": "pricing.trial.error", | 774 | "id": "pricing.trial.error", |
775 | "start": { | 775 | "start": { |
776 | "column": 19, | 776 | "column": 19, |
777 | "line": 47 | 777 | "line": 46 |
778 | } | 778 | } |
779 | }, | 779 | }, |
780 | { | 780 | { |
781 | "defaultMessage": "!!!Start my 14-day Franz Professional Trial", | 781 | "defaultMessage": "!!!Start my 14-day Franz Professional Trial", |
782 | "end": { | 782 | "end": { |
783 | "column": 3, | 783 | "column": 3, |
784 | "line": 54 | 784 | "line": 53 |
785 | }, | 785 | }, |
786 | "file": "src/components/auth/Pricing.js", | 786 | "file": "src/components/auth/Pricing.js", |
787 | "id": "pricing.trial.cta.accept", | 787 | "id": "pricing.trial.cta.accept", |
788 | "start": { | 788 | "start": { |
789 | "column": 13, | 789 | "column": 13, |
790 | "line": 51 | 790 | "line": 50 |
791 | } | 791 | } |
792 | }, | 792 | }, |
793 | { | 793 | { |
794 | "defaultMessage": "!!!Start using Franz", | 794 | "defaultMessage": "!!!Start using Franz", |
795 | "end": { | 795 | "end": { |
796 | "column": 3, | 796 | "column": 3, |
797 | "line": 58 | 797 | "line": 57 |
798 | }, | 798 | }, |
799 | "file": "src/components/auth/Pricing.js", | 799 | "file": "src/components/auth/Pricing.js", |
800 | "id": "pricing.trial.cta.start", | 800 | "id": "pricing.trial.cta.start", |
801 | "start": { | 801 | "start": { |
802 | "column": 12, | 802 | "column": 12, |
803 | "line": 55 | 803 | "line": 54 |
804 | } | 804 | } |
805 | }, | 805 | }, |
806 | { | 806 | { |
807 | "defaultMessage": "!!!Continue to Ferdi", | 807 | "defaultMessage": "!!!Continue to Ferdi", |
808 | "end": { | 808 | "end": { |
809 | "column": 3, | 809 | "column": 3, |
810 | "line": 62 | 810 | "line": 61 |
811 | }, | 811 | }, |
812 | "file": "src/components/auth/Pricing.js", | 812 | "file": "src/components/auth/Pricing.js", |
813 | "id": "pricing.trial.cta.skip", | 813 | "id": "pricing.trial.cta.skip", |
814 | "start": { | 814 | "start": { |
815 | "column": 11, | 815 | "column": 11, |
816 | "line": 59 | 816 | "line": 58 |
817 | } | 817 | } |
818 | }, | 818 | }, |
819 | { | 819 | { |
820 | "defaultMessage": "!!!Franz Professional includes:", | 820 | "defaultMessage": "!!!Franz Professional includes:", |
821 | "end": { | 821 | "end": { |
822 | "column": 3, | 822 | "column": 3, |
823 | "line": 66 | 823 | "line": 65 |
824 | }, | 824 | }, |
825 | "file": "src/components/auth/Pricing.js", | 825 | "file": "src/components/auth/Pricing.js", |
826 | "id": "pricing.trial.features.headline", | 826 | "id": "pricing.trial.features.headline", |
827 | "start": { | 827 | "start": { |
828 | "column": 20, | 828 | "column": 20, |
829 | "line": 63 | 829 | "line": 62 |
830 | } | 830 | } |
831 | } | 831 | } |
832 | ], | 832 | ], |
@@ -3659,6 +3659,24 @@ | |||
3659 | { | 3659 | { |
3660 | "descriptors": [ | 3660 | "descriptors": [ |
3661 | { | 3661 | { |
3662 | "defaultMessage": "!!!Close settings", | ||
3663 | "end": { | ||
3664 | "column": 3, | ||
3665 | "line": 14 | ||
3666 | }, | ||
3667 | "file": "src/components/settings/SettingsLayout.js", | ||
3668 | "id": "settings.app.closeSettings", | ||
3669 | "start": { | ||
3670 | "column": 17, | ||
3671 | "line": 11 | ||
3672 | } | ||
3673 | } | ||
3674 | ], | ||
3675 | "path": "src/components/settings/SettingsLayout.json" | ||
3676 | }, | ||
3677 | { | ||
3678 | "descriptors": [ | ||
3679 | { | ||
3662 | "defaultMessage": "!!!About Ferdi", | 3680 | "defaultMessage": "!!!About Ferdi", |
3663 | "end": { | 3681 | "end": { |
3664 | "column": 3, | 3682 | "column": 3, |
@@ -4562,6 +4580,60 @@ | |||
4562 | { | 4580 | { |
4563 | "descriptors": [ | 4581 | "descriptors": [ |
4564 | { | 4582 | { |
4583 | "defaultMessage": "!!!Hide", | ||
4584 | "end": { | ||
4585 | "column": 3, | ||
4586 | "line": 15 | ||
4587 | }, | ||
4588 | "file": "src/components/ui/InfoBar.js", | ||
4589 | "id": "infobar.hide", | ||
4590 | "start": { | ||
4591 | "column": 8, | ||
4592 | "line": 12 | ||
4593 | } | ||
4594 | } | ||
4595 | ], | ||
4596 | "path": "src/components/ui/InfoBar.json" | ||
4597 | }, | ||
4598 | { | ||
4599 | "descriptors": [ | ||
4600 | { | ||
4601 | "defaultMessage": "!!!Dismiss", | ||
4602 | "end": { | ||
4603 | "column": 3, | ||
4604 | "line": 12 | ||
4605 | }, | ||
4606 | "file": "src/components/ui/Infobox.js", | ||
4607 | "id": "infobox.dismiss", | ||
4608 | "start": { | ||
4609 | "column": 11, | ||
4610 | "line": 9 | ||
4611 | } | ||
4612 | } | ||
4613 | ], | ||
4614 | "path": "src/components/ui/Infobox.json" | ||
4615 | }, | ||
4616 | { | ||
4617 | "descriptors": [ | ||
4618 | { | ||
4619 | "defaultMessage": "!!!Password toggle", | ||
4620 | "end": { | ||
4621 | "column": 3, | ||
4622 | "line": 14 | ||
4623 | }, | ||
4624 | "file": "src/components/ui/Input.js", | ||
4625 | "id": "settings.app.form.passwordToggle", | ||
4626 | "start": { | ||
4627 | "column": 18, | ||
4628 | "line": 11 | ||
4629 | } | ||
4630 | } | ||
4631 | ], | ||
4632 | "path": "src/components/ui/Input.json" | ||
4633 | }, | ||
4634 | { | ||
4635 | "descriptors": [ | ||
4636 | { | ||
4565 | "defaultMessage": "!!!Upgrade account", | 4637 | "defaultMessage": "!!!Upgrade account", |
4566 | "end": { | 4638 | "end": { |
4567 | "column": 3, | 4639 | "column": 3, |
@@ -6070,91 +6142,91 @@ | |||
6070 | "defaultMessage": "!!!Publish debug information", | 6142 | "defaultMessage": "!!!Publish debug information", |
6071 | "end": { | 6143 | "end": { |
6072 | "column": 3, | 6144 | "column": 3, |
6073 | "line": 21 | 6145 | "line": 20 |
6074 | }, | 6146 | }, |
6075 | "file": "src/features/publishDebugInfo/Component.js", | 6147 | "file": "src/features/publishDebugInfo/Component.js", |
6076 | "id": "feature.publishDebugInfo.title", | 6148 | "id": "feature.publishDebugInfo.title", |
6077 | "start": { | 6149 | "start": { |
6078 | "column": 9, | 6150 | "column": 9, |
6079 | "line": 18 | 6151 | "line": 17 |
6080 | } | 6152 | } |
6081 | }, | 6153 | }, |
6082 | { | 6154 | { |
6083 | "defaultMessage": "!!!Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service", | 6155 | "defaultMessage": "!!!Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service", |
6084 | "end": { | 6156 | "end": { |
6085 | "column": 3, | 6157 | "column": 3, |
6086 | "line": 25 | 6158 | "line": 24 |
6087 | }, | 6159 | }, |
6088 | "file": "src/features/publishDebugInfo/Component.js", | 6160 | "file": "src/features/publishDebugInfo/Component.js", |
6089 | "id": "feature.publishDebugInfo.info", | 6161 | "id": "feature.publishDebugInfo.info", |
6090 | "start": { | 6162 | "start": { |
6091 | "column": 8, | 6163 | "column": 8, |
6092 | "line": 22 | 6164 | "line": 21 |
6093 | } | 6165 | } |
6094 | }, | 6166 | }, |
6095 | { | 6167 | { |
6096 | "defaultMessage": "!!!There was an error while trying to publish the debug information. Please try again later or view the console for more information.", | 6168 | "defaultMessage": "!!!There was an error while trying to publish the debug information. Please try again later or view the console for more information.", |
6097 | "end": { | 6169 | "end": { |
6098 | "column": 3, | 6170 | "column": 3, |
6099 | "line": 29 | 6171 | "line": 28 |
6100 | }, | 6172 | }, |
6101 | "file": "src/features/publishDebugInfo/Component.js", | 6173 | "file": "src/features/publishDebugInfo/Component.js", |
6102 | "id": "feature.publishDebugInfo.error", | 6174 | "id": "feature.publishDebugInfo.error", |
6103 | "start": { | 6175 | "start": { |
6104 | "column": 9, | 6176 | "column": 9, |
6105 | "line": 26 | 6177 | "line": 25 |
6106 | } | 6178 | } |
6107 | }, | 6179 | }, |
6108 | { | 6180 | { |
6109 | "defaultMessage": "!!!Privacy policy", | 6181 | "defaultMessage": "!!!Privacy policy", |
6110 | "end": { | 6182 | "end": { |
6111 | "column": 3, | 6183 | "column": 3, |
6112 | "line": 33 | 6184 | "line": 32 |
6113 | }, | 6185 | }, |
6114 | "file": "src/features/publishDebugInfo/Component.js", | 6186 | "file": "src/features/publishDebugInfo/Component.js", |
6115 | "id": "feature.publishDebugInfo.privacy", | 6187 | "id": "feature.publishDebugInfo.privacy", |
6116 | "start": { | 6188 | "start": { |
6117 | "column": 11, | 6189 | "column": 11, |
6118 | "line": 30 | 6190 | "line": 29 |
6119 | } | 6191 | } |
6120 | }, | 6192 | }, |
6121 | { | 6193 | { |
6122 | "defaultMessage": "!!!Terms of service", | 6194 | "defaultMessage": "!!!Terms of service", |
6123 | "end": { | 6195 | "end": { |
6124 | "column": 3, | 6196 | "column": 3, |
6125 | "line": 37 | 6197 | "line": 36 |
6126 | }, | 6198 | }, |
6127 | "file": "src/features/publishDebugInfo/Component.js", | 6199 | "file": "src/features/publishDebugInfo/Component.js", |
6128 | "id": "feature.publishDebugInfo.terms", | 6200 | "id": "feature.publishDebugInfo.terms", |
6129 | "start": { | 6201 | "start": { |
6130 | "column": 9, | 6202 | "column": 9, |
6131 | "line": 34 | 6203 | "line": 33 |
6132 | } | 6204 | } |
6133 | }, | 6205 | }, |
6134 | { | 6206 | { |
6135 | "defaultMessage": "!!!Accept and publish", | 6207 | "defaultMessage": "!!!Accept and publish", |
6136 | "end": { | 6208 | "end": { |
6137 | "column": 3, | 6209 | "column": 3, |
6138 | "line": 41 | 6210 | "line": 40 |
6139 | }, | 6211 | }, |
6140 | "file": "src/features/publishDebugInfo/Component.js", | 6212 | "file": "src/features/publishDebugInfo/Component.js", |
6141 | "id": "feature.publishDebugInfo.publish", | 6213 | "id": "feature.publishDebugInfo.publish", |
6142 | "start": { | 6214 | "start": { |
6143 | "column": 11, | 6215 | "column": 11, |
6144 | "line": 38 | 6216 | "line": 37 |
6145 | } | 6217 | } |
6146 | }, | 6218 | }, |
6147 | { | 6219 | { |
6148 | "defaultMessage": "!!!Your debug log was published and is now availible at", | 6220 | "defaultMessage": "!!!Your debug log was published and is now availible at", |
6149 | "end": { | 6221 | "end": { |
6150 | "column": 3, | 6222 | "column": 3, |
6151 | "line": 45 | 6223 | "line": 44 |
6152 | }, | 6224 | }, |
6153 | "file": "src/features/publishDebugInfo/Component.js", | 6225 | "file": "src/features/publishDebugInfo/Component.js", |
6154 | "id": "feature.publishDebugInfo.published", | 6226 | "id": "feature.publishDebugInfo.published", |
6155 | "start": { | 6227 | "start": { |
6156 | "column": 13, | 6228 | "column": 13, |
6157 | "line": 42 | 6229 | "line": 41 |
6158 | } | 6230 | } |
6159 | } | 6231 | } |
6160 | ], | 6232 | ], |
@@ -6736,7 +6808,7 @@ | |||
6736 | "defaultMessage": "!!!*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", | 6808 | "defaultMessage": "!!!*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", |
6737 | "end": { | 6809 | "end": { |
6738 | "column": 3, | 6810 | "column": 3, |
6739 | "line": 44 | 6811 | "line": 45 |
6740 | }, | 6812 | }, |
6741 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 6813 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
6742 | "id": "settings.workspace.form.keepLoadedInfo", | 6814 | "id": "settings.workspace.form.keepLoadedInfo", |
@@ -6749,39 +6821,39 @@ | |||
6749 | "defaultMessage": "!!!Services in this Workspace", | 6821 | "defaultMessage": "!!!Services in this Workspace", |
6750 | "end": { | 6822 | "end": { |
6751 | "column": 3, | 6823 | "column": 3, |
6752 | "line": 48 | 6824 | "line": 49 |
6753 | }, | 6825 | }, |
6754 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 6826 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
6755 | "id": "settings.workspace.form.servicesInWorkspaceHeadline", | 6827 | "id": "settings.workspace.form.servicesInWorkspaceHeadline", |
6756 | "start": { | 6828 | "start": { |
6757 | "column": 31, | 6829 | "column": 31, |
6758 | "line": 45 | 6830 | "line": 46 |
6759 | } | 6831 | } |
6760 | }, | 6832 | }, |
6761 | { | 6833 | { |
6762 | "defaultMessage": "!!!Start by adding a service.", | 6834 | "defaultMessage": "!!!Start by adding a service.", |
6763 | "end": { | 6835 | "end": { |
6764 | "column": 3, | 6836 | "column": 3, |
6765 | "line": 52 | 6837 | "line": 53 |
6766 | }, | 6838 | }, |
6767 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 6839 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
6768 | "id": "settings.services.noServicesAdded", | 6840 | "id": "settings.services.noServicesAdded", |
6769 | "start": { | 6841 | "start": { |
6770 | "column": 19, | 6842 | "column": 19, |
6771 | "line": 49 | 6843 | "line": 50 |
6772 | } | 6844 | } |
6773 | }, | 6845 | }, |
6774 | { | 6846 | { |
6775 | "defaultMessage": "!!!Discover services", | 6847 | "defaultMessage": "!!!Discover services", |
6776 | "end": { | 6848 | "end": { |
6777 | "column": 3, | 6849 | "column": 3, |
6778 | "line": 56 | 6850 | "line": 57 |
6779 | }, | 6851 | }, |
6780 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 6852 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
6781 | "id": "settings.services.discoverServices", | 6853 | "id": "settings.services.discoverServices", |
6782 | "start": { | 6854 | "start": { |
6783 | "column": 20, | 6855 | "column": 20, |
6784 | "line": 53 | 6856 | "line": 54 |
6785 | } | 6857 | } |
6786 | } | 6858 | } |
6787 | ], | 6859 | ], |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index fc25795a4..05a8e7486 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -84,10 +84,12 @@ | |||
84 | "infobar.buttonChangelog": "What is new?", | 84 | "infobar.buttonChangelog": "What is new?", |
85 | "infobar.buttonInstallUpdate": "Restart & install update", | 85 | "infobar.buttonInstallUpdate": "Restart & install update", |
86 | "infobar.buttonReloadServices": "Reload services", | 86 | "infobar.buttonReloadServices": "Reload services", |
87 | "infobar.hide": "Hide", | ||
87 | "infobar.requiredRequestsFailed": "Could not load services and user information", | 88 | "infobar.requiredRequestsFailed": "Could not load services and user information", |
88 | "infobar.servicesUpdated": "Your services have been updated.", | 89 | "infobar.servicesUpdated": "Your services have been updated.", |
89 | "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!", | 90 | "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!", |
90 | "infobar.updateAvailable": "A new update for Ferdi is available.", | 91 | "infobar.updateAvailable": "A new update for Ferdi is available.", |
92 | "infobox.dismiss": "Dismiss", | ||
91 | "invite.email.label": "Email address", | 93 | "invite.email.label": "Email address", |
92 | "invite.headline.friends": "Invite 3 of your friends or colleagues", | 94 | "invite.headline.friends": "Invite 3 of your friends or colleagues", |
93 | "invite.name.label": "Name", | 95 | "invite.name.label": "Name", |
@@ -286,6 +288,7 @@ | |||
286 | "settings.app.buttonSearchForUpdate": "Check for updates", | 288 | "settings.app.buttonSearchForUpdate": "Check for updates", |
287 | "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", | 289 | "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", |
288 | "settings.app.cacheNotCleared": "Couldn't clear all cache", | 290 | "settings.app.cacheNotCleared": "Couldn't clear all cache", |
291 | "settings.app.closeSettings": "Close settings", | ||
289 | "settings.app.currentVersion": "Current version:", | 292 | "settings.app.currentVersion": "Current version:", |
290 | "settings.app.form.accentColor": "Accent color", | 293 | "settings.app.form.accentColor": "Accent color", |
291 | "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", | 294 | "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", |
@@ -315,6 +318,7 @@ | |||
315 | "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", | 318 | "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", |
316 | "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", | 319 | "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", |
317 | "settings.app.form.notifyTaskBarOnMessage": "Notify TaskBar/Dock on new message", | 320 | "settings.app.form.notifyTaskBarOnMessage": "Notify TaskBar/Dock on new message", |
321 | "settings.app.form.passwordToggle": "Password toggle", | ||
318 | "settings.app.form.predefinedTodoServer": "Todo Server", | 322 | "settings.app.form.predefinedTodoServer": "Todo Server", |
319 | "settings.app.form.privateNotifications": "Don't show message content in notifications", | 323 | "settings.app.form.privateNotifications": "Don't show message content in notifications", |
320 | "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", | 324 | "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", |
diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json index c4c94bb32..b5b7d72a8 100644 --- a/src/i18n/messages/src/components/auth/Pricing.json +++ b/src/i18n/messages/src/components/auth/Pricing.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Hi {name}, welcome to Franz", | 4 | "defaultMessage": "!!!Hi {name}, welcome to Franz", |
5 | "file": "src/components/auth/Pricing.js", | 5 | "file": "src/components/auth/Pricing.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 15, | 7 | "line": 14, |
8 | "column": 12 | 8 | "column": 12 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 18, | 11 | "line": 17, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!We have a special treat for you.", | 17 | "defaultMessage": "!!!We have a special treat for you.", |
18 | "file": "src/components/auth/Pricing.js", | 18 | "file": "src/components/auth/Pricing.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 19, | 20 | "line": 18, |
21 | "column": 16 | 21 | "column": 16 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 22, | 24 | "line": 21, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", | 30 | "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", |
31 | "file": "src/components/auth/Pricing.js", | 31 | "file": "src/components/auth/Pricing.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 23, | 33 | "line": 22, |
34 | "column": 10 | 34 | "column": 10 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 26, | 37 | "line": 25, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Happy messaging,", | 43 | "defaultMessage": "!!!Happy messaging,", |
44 | "file": "src/components/auth/Pricing.js", | 44 | "file": "src/components/auth/Pricing.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 27, | 46 | "line": 26, |
47 | "column": 18 | 47 | "column": 18 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 30, | 50 | "line": 29, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!No strings attached", | 56 | "defaultMessage": "!!!No strings attached", |
57 | "file": "src/components/auth/Pricing.js", | 57 | "file": "src/components/auth/Pricing.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 31, | 59 | "line": 30, |
60 | "column": 29 | 60 | "column": 29 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 34, | 63 | "line": 33, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!No credit card required", | 69 | "defaultMessage": "!!!No credit card required", |
70 | "file": "src/components/auth/Pricing.js", | 70 | "file": "src/components/auth/Pricing.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 35, | 72 | "line": 34, |
73 | "column": 16 | 73 | "column": 16 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 38, | 76 | "line": 37, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Your free trial ends automatically after 14 days", | 82 | "defaultMessage": "!!!Your free trial ends automatically after 14 days", |
83 | "file": "src/components/auth/Pricing.js", | 83 | "file": "src/components/auth/Pricing.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 39, | 85 | "line": 38, |
86 | "column": 21 | 86 | "column": 21 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 42, | 89 | "line": 41, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", | 95 | "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", |
96 | "file": "src/components/auth/Pricing.js", | 96 | "file": "src/components/auth/Pricing.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 43, | 98 | "line": 42, |
99 | "column": 14 | 99 | "column": 14 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 46, | 102 | "line": 45, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Sorry, we could not activate your trial!", | 108 | "defaultMessage": "!!!Sorry, we could not activate your trial!", |
109 | "file": "src/components/auth/Pricing.js", | 109 | "file": "src/components/auth/Pricing.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 47, | 111 | "line": 46, |
112 | "column": 19 | 112 | "column": 19 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 50, | 115 | "line": 49, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,11 @@ | |||
121 | "defaultMessage": "!!!Start my 14-day Franz Professional Trial", | 121 | "defaultMessage": "!!!Start my 14-day Franz Professional Trial", |
122 | "file": "src/components/auth/Pricing.js", | 122 | "file": "src/components/auth/Pricing.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 51, | 124 | "line": 50, |
125 | "column": 13 | 125 | "column": 13 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 54, | 128 | "line": 53, |
129 | "column": 3 | 129 | "column": 3 |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -134,11 +134,11 @@ | |||
134 | "defaultMessage": "!!!Start using Franz", | 134 | "defaultMessage": "!!!Start using Franz", |
135 | "file": "src/components/auth/Pricing.js", | 135 | "file": "src/components/auth/Pricing.js", |
136 | "start": { | 136 | "start": { |
137 | "line": 55, | 137 | "line": 54, |
138 | "column": 12 | 138 | "column": 12 |
139 | }, | 139 | }, |
140 | "end": { | 140 | "end": { |
141 | "line": 58, | 141 | "line": 57, |
142 | "column": 3 | 142 | "column": 3 |
143 | } | 143 | } |
144 | }, | 144 | }, |
@@ -147,11 +147,11 @@ | |||
147 | "defaultMessage": "!!!Continue to Ferdi", | 147 | "defaultMessage": "!!!Continue to Ferdi", |
148 | "file": "src/components/auth/Pricing.js", | 148 | "file": "src/components/auth/Pricing.js", |
149 | "start": { | 149 | "start": { |
150 | "line": 59, | 150 | "line": 58, |
151 | "column": 11 | 151 | "column": 11 |
152 | }, | 152 | }, |
153 | "end": { | 153 | "end": { |
154 | "line": 62, | 154 | "line": 61, |
155 | "column": 3 | 155 | "column": 3 |
156 | } | 156 | } |
157 | }, | 157 | }, |
@@ -160,11 +160,11 @@ | |||
160 | "defaultMessage": "!!!Franz Professional includes:", | 160 | "defaultMessage": "!!!Franz Professional includes:", |
161 | "file": "src/components/auth/Pricing.js", | 161 | "file": "src/components/auth/Pricing.js", |
162 | "start": { | 162 | "start": { |
163 | "line": 63, | 163 | "line": 62, |
164 | "column": 20 | 164 | "column": 20 |
165 | }, | 165 | }, |
166 | "end": { | 166 | "end": { |
167 | "line": 66, | 167 | "line": 65, |
168 | "column": 3 | 168 | "column": 3 |
169 | } | 169 | } |
170 | } | 170 | } |
diff --git a/src/i18n/messages/src/components/settings/SettingsLayout.json b/src/i18n/messages/src/components/settings/SettingsLayout.json new file mode 100644 index 000000000..99337a315 --- /dev/null +++ b/src/i18n/messages/src/components/settings/SettingsLayout.json | |||
@@ -0,0 +1,15 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "settings.app.closeSettings", | ||
4 | "defaultMessage": "!!!Close settings", | ||
5 | "file": "src/components/settings/SettingsLayout.js", | ||
6 | "start": { | ||
7 | "line": 11, | ||
8 | "column": 17 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 14, | ||
12 | "column": 3 | ||
13 | } | ||
14 | } | ||
15 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/components/ui/InfoBar.json b/src/i18n/messages/src/components/ui/InfoBar.json new file mode 100644 index 000000000..a6a629c71 --- /dev/null +++ b/src/i18n/messages/src/components/ui/InfoBar.json | |||
@@ -0,0 +1,15 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "infobar.hide", | ||
4 | "defaultMessage": "!!!Hide", | ||
5 | "file": "src/components/ui/InfoBar.js", | ||
6 | "start": { | ||
7 | "line": 12, | ||
8 | "column": 8 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 15, | ||
12 | "column": 3 | ||
13 | } | ||
14 | } | ||
15 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/components/ui/Infobox.json b/src/i18n/messages/src/components/ui/Infobox.json new file mode 100644 index 000000000..296c2ad3e --- /dev/null +++ b/src/i18n/messages/src/components/ui/Infobox.json | |||
@@ -0,0 +1,15 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "infobox.dismiss", | ||
4 | "defaultMessage": "!!!Dismiss", | ||
5 | "file": "src/components/ui/Infobox.js", | ||
6 | "start": { | ||
7 | "line": 9, | ||
8 | "column": 11 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 12, | ||
12 | "column": 3 | ||
13 | } | ||
14 | } | ||
15 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/components/ui/Input.json b/src/i18n/messages/src/components/ui/Input.json new file mode 100644 index 000000000..6240badfb --- /dev/null +++ b/src/i18n/messages/src/components/ui/Input.json | |||
@@ -0,0 +1,15 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "settings.app.form.passwordToggle", | ||
4 | "defaultMessage": "!!!Password toggle", | ||
5 | "file": "src/components/ui/Input.js", | ||
6 | "start": { | ||
7 | "line": 11, | ||
8 | "column": 18 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 14, | ||
12 | "column": 3 | ||
13 | } | ||
14 | } | ||
15 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/features/publishDebugInfo/Component.json b/src/i18n/messages/src/features/publishDebugInfo/Component.json index 85fbe7ca6..25048ace6 100644 --- a/src/i18n/messages/src/features/publishDebugInfo/Component.json +++ b/src/i18n/messages/src/features/publishDebugInfo/Component.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Publish debug information", | 4 | "defaultMessage": "!!!Publish debug information", |
5 | "file": "src/features/publishDebugInfo/Component.js", | 5 | "file": "src/features/publishDebugInfo/Component.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 18, | 7 | "line": 17, |
8 | "column": 9 | 8 | "column": 9 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 21, | 11 | "line": 20, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service", | 17 | "defaultMessage": "!!!Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service", |
18 | "file": "src/features/publishDebugInfo/Component.js", | 18 | "file": "src/features/publishDebugInfo/Component.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 22, | 20 | "line": 21, |
21 | "column": 8 | 21 | "column": 8 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 25, | 24 | "line": 24, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!There was an error while trying to publish the debug information. Please try again later or view the console for more information.", | 30 | "defaultMessage": "!!!There was an error while trying to publish the debug information. Please try again later or view the console for more information.", |
31 | "file": "src/features/publishDebugInfo/Component.js", | 31 | "file": "src/features/publishDebugInfo/Component.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 26, | 33 | "line": 25, |
34 | "column": 9 | 34 | "column": 9 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 29, | 37 | "line": 28, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Privacy policy", | 43 | "defaultMessage": "!!!Privacy policy", |
44 | "file": "src/features/publishDebugInfo/Component.js", | 44 | "file": "src/features/publishDebugInfo/Component.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 30, | 46 | "line": 29, |
47 | "column": 11 | 47 | "column": 11 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 33, | 50 | "line": 32, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Terms of service", | 56 | "defaultMessage": "!!!Terms of service", |
57 | "file": "src/features/publishDebugInfo/Component.js", | 57 | "file": "src/features/publishDebugInfo/Component.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 34, | 59 | "line": 33, |
60 | "column": 9 | 60 | "column": 9 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 37, | 63 | "line": 36, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Accept and publish", | 69 | "defaultMessage": "!!!Accept and publish", |
70 | "file": "src/features/publishDebugInfo/Component.js", | 70 | "file": "src/features/publishDebugInfo/Component.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 38, | 72 | "line": 37, |
73 | "column": 11 | 73 | "column": 11 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 41, | 76 | "line": 40, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Your debug log was published and is now availible at", | 82 | "defaultMessage": "!!!Your debug log was published and is now availible at", |
83 | "file": "src/features/publishDebugInfo/Component.js", | 83 | "file": "src/features/publishDebugInfo/Component.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 42, | 85 | "line": 41, |
86 | "column": 13 | 86 | "column": 13 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 45, | 89 | "line": 44, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | } | 92 | } |
diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json index 053751c84..804e30070 100644 --- a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json +++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json | |||
@@ -73,7 +73,7 @@ | |||
73 | "column": 18 | 73 | "column": 18 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 44, | 76 | "line": 45, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Services in this Workspace", | 82 | "defaultMessage": "!!!Services in this Workspace", |
83 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 83 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 45, | 85 | "line": 46, |
86 | "column": 31 | 86 | "column": 31 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 48, | 89 | "line": 49, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Start by adding a service.", | 95 | "defaultMessage": "!!!Start by adding a service.", |
96 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 96 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 49, | 98 | "line": 50, |
99 | "column": 19 | 99 | "column": 19 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 52, | 102 | "line": 53, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Discover services", | 108 | "defaultMessage": "!!!Discover services", |
109 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | 109 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 53, | 111 | "line": 54, |
112 | "column": 20 | 112 | "column": 20 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 56, | 115 | "line": 57, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | } | 118 | } |
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 6e3f120ba..8118b4e26 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -1269,7 +1269,6 @@ export default class FranzMenu { | |||
1269 | return menu; | 1269 | return menu; |
1270 | } | 1270 | } |
1271 | 1271 | ||
1272 | |||
1273 | debugMenu() { | 1272 | debugMenu() { |
1274 | const { intl } = window.ferdi; | 1273 | const { intl } = window.ferdi; |
1275 | 1274 | ||
diff --git a/src/models/User.js b/src/models/User.js index 5a614efbe..74a39926b 100644 --- a/src/models/User.js +++ b/src/models/User.js | |||
@@ -38,7 +38,6 @@ export default class User { | |||
38 | 38 | ||
39 | @observable team = {}; | 39 | @observable team = {}; |
40 | 40 | ||
41 | |||
42 | constructor(data) { | 41 | constructor(data) { |
43 | if (!data.id) { | 42 | if (!data.id) { |
44 | throw Error('User requires Id'); | 43 | throw Error('User requires Id'); |
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index dd4ab3629..3116677c2 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -127,7 +127,6 @@ export default class AppStore extends Store { | |||
127 | this.isFullScreen = false; | 127 | this.isFullScreen = false; |
128 | }); | 128 | }); |
129 | 129 | ||
130 | |||
131 | this.isOnline = navigator.onLine; | 130 | this.isOnline = navigator.onLine; |
132 | 131 | ||
133 | // Check if Ferdi should launch on start | 132 | // Check if Ferdi should launch on start |
@@ -474,7 +473,6 @@ export default class AppStore extends Store { | |||
474 | locale = this.stores.user.data.locale; | 473 | locale = this.stores.user.data.locale; |
475 | } | 474 | } |
476 | 475 | ||
477 | |||
478 | if (locale && Object.prototype.hasOwnProperty.call(locales, locale) && locale !== this.locale) { | 476 | if (locale && Object.prototype.hasOwnProperty.call(locales, locale) && locale !== this.locale) { |
479 | this.locale = locale; | 477 | this.locale = locale; |
480 | } else if (!locale) { | 478 | } else if (!locale) { |
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 631d0318e..2fee9bdda 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js | |||
@@ -33,7 +33,7 @@ export default class FeaturesStore extends Store { | |||
33 | 33 | ||
34 | @observable featuresRequest = new CachedRequest(this.api.features, 'features'); | 34 | @observable featuresRequest = new CachedRequest(this.api.features, 'features'); |
35 | 35 | ||
36 | @observable features = Object.assign({}, DEFAULT_FEATURES_CONFIG); | 36 | @observable features = ({ ...DEFAULT_FEATURES_CONFIG }); |
37 | 37 | ||
38 | async setup() { | 38 | async setup() { |
39 | this.registerReactions([ | 39 | this.registerReactions([ |
@@ -57,7 +57,7 @@ export default class FeaturesStore extends Store { | |||
57 | } | 57 | } |
58 | 58 | ||
59 | _updateFeatures = () => { | 59 | _updateFeatures = () => { |
60 | const features = Object.assign({}, DEFAULT_FEATURES_CONFIG); | 60 | const features = { ...DEFAULT_FEATURES_CONFIG }; |
61 | if (this.stores.user.isLoggedIn) { | 61 | if (this.stores.user.isLoggedIn) { |
62 | let requestResult = {}; | 62 | let requestResult = {}; |
63 | try { | 63 | try { |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 3dba217b2..9b69cb7c6 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -306,6 +306,7 @@ export default class ServicesStore extends Store { | |||
306 | } | 306 | } |
307 | 307 | ||
308 | // set default values for serviceData | 308 | // set default values for serviceData |
309 | // eslint-disable-next-line prefer-object-spread | ||
309 | Object.assign({ | 310 | Object.assign({ |
310 | isEnabled: true, | 311 | isEnabled: true, |
311 | isHibernationEnabled: false, | 312 | isHibernationEnabled: false, |
diff --git a/src/theme/default/legacy.js b/src/theme/default/legacy.js index e894a06ed..3f4bec5d5 100644 --- a/src/theme/default/legacy.js +++ b/src/theme/default/legacy.js | |||
@@ -22,7 +22,6 @@ export const themeTransitionTime = '.5s'; | |||
22 | 22 | ||
23 | export const themeInsetShadow = 'inset 0 2px 5px rgba(0, 0, 0, .03)'; | 23 | export const themeInsetShadow = 'inset 0 2px 5px rgba(0, 0, 0, .03)'; |
24 | 24 | ||
25 | |||
26 | export const darkThemeBlack = '#1A1A1A'; | 25 | export const darkThemeBlack = '#1A1A1A'; |
27 | 26 | ||
28 | export const darkThemeGrayDarkest = '#1E1E1E'; | 27 | export const darkThemeGrayDarkest = '#1E1E1E'; |
diff --git a/src/webview/contextMenuBuilder.js b/src/webview/contextMenuBuilder.js index c26f192fe..500a1a653 100644 --- a/src/webview/contextMenuBuilder.js +++ b/src/webview/contextMenuBuilder.js | |||
@@ -64,7 +64,7 @@ module.exports = class ContextMenuBuilder { | |||
64 | this.debugMode = debugMode; | 64 | this.debugMode = debugMode; |
65 | this.processMenu = processMenu; | 65 | this.processMenu = processMenu; |
66 | this.menu = null; | 66 | this.menu = null; |
67 | this.stringTable = Object.assign({}, contextMenuStringTable); | 67 | this.stringTable = { ...contextMenuStringTable }; |
68 | this.getWebContents = () => webContents; | 68 | this.getWebContents = () => webContents; |
69 | } | 69 | } |
70 | 70 | ||
diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js index 84ac45ecc..b5793a5f1 100644 --- a/src/webview/lib/RecipeWebview.js +++ b/src/webview/lib/RecipeWebview.js | |||
@@ -59,7 +59,6 @@ class RecipeWebview { | |||
59 | indirect: Math.max(indirectInt, 0), | 59 | indirect: Math.max(indirectInt, 0), |
60 | }; | 60 | }; |
61 | 61 | ||
62 | |||
63 | ipcRenderer.sendToHost('message-counts', count); | 62 | ipcRenderer.sendToHost('message-counts', count); |
64 | Object.assign(this.countCache, count); | 63 | Object.assign(this.countCache, count); |
65 | 64 | ||
diff --git a/src/webview/screenshare.js b/src/webview/screenshare.js index 2715f2e3e..84d2e1e95 100644 --- a/src/webview/screenshare.js +++ b/src/webview/screenshare.js | |||
@@ -73,25 +73,29 @@ export const screenShareCss = ` | |||
73 | `; | 73 | `; |
74 | 74 | ||
75 | // Patch getDisplayMedia for screen sharing | 75 | // Patch getDisplayMedia for screen sharing |
76 | window.navigator.mediaDevices.getDisplayMedia = () => new Promise(async (resolve, reject) => { | 76 | window.navigator.mediaDevices.getDisplayMedia = () => async (resolve, reject) => { |
77 | try { | 77 | try { |
78 | const sources = await desktopCapturer.getSources({ types: ['screen', 'window'] }); | 78 | const sources = await desktopCapturer.getSources({ |
79 | types: ['screen', 'window'], | ||
80 | }); | ||
79 | 81 | ||
80 | const selectionElem = document.createElement('div'); | 82 | const selectionElem = document.createElement('div'); |
81 | selectionElem.classList = 'desktop-capturer-selection'; | 83 | selectionElem.classList = 'desktop-capturer-selection'; |
82 | selectionElem.innerHTML = ` | 84 | selectionElem.innerHTML = ` |
83 | <div class="desktop-capturer-selection__scroller"> | 85 | <div class="desktop-capturer-selection__scroller"> |
84 | <ul class="desktop-capturer-selection__list"> | 86 | <ul class="desktop-capturer-selection__list"> |
85 | ${sources.map(({ | 87 | ${sources |
86 | id, name, thumbnail, | 88 | .map( |
87 | }) => ` | 89 | ({ id, name, thumbnail }) => ` |
88 | <li class="desktop-capturer-selection__item"> | 90 | <li class="desktop-capturer-selection__item"> |
89 | <button class="desktop-capturer-selection__btn" data-id="${id}" title="${name}"> | 91 | <button class="desktop-capturer-selection__btn" data-id="${id}" title="${name}"> |
90 | <img class="desktop-capturer-selection__thumbnail" src="${thumbnail.toDataURL()}" /> | 92 | <img class="desktop-capturer-selection__thumbnail" src="${thumbnail.toDataURL()}" /> |
91 | <span class="desktop-capturer-selection__name">${name}</span> | 93 | <span class="desktop-capturer-selection__name">${name}</span> |
92 | </button> | 94 | </button> |
93 | </li> | 95 | </li> |
94 | `).join('')} | 96 | `, |
97 | ) | ||
98 | .join('')} | ||
95 | <li class="desktop-capturer-selection__item"> | 99 | <li class="desktop-capturer-selection__item"> |
96 | <button class="desktop-capturer-selection__btn" data-id="${CANCEL_ID}" title="Cancel"> | 100 | <button class="desktop-capturer-selection__btn" data-id="${CANCEL_ID}" title="Cancel"> |
97 | <span class="desktop-capturer-selection__name desktop-capturer-selection__name--cancel">Cancel</span> | 101 | <span class="desktop-capturer-selection__name desktop-capturer-selection__name--cancel">Cancel</span> |
@@ -102,7 +106,8 @@ window.navigator.mediaDevices.getDisplayMedia = () => new Promise(async (resolve | |||
102 | `; | 106 | `; |
103 | document.body.appendChild(selectionElem); | 107 | document.body.appendChild(selectionElem); |
104 | 108 | ||
105 | document.querySelectorAll('.desktop-capturer-selection__btn') | 109 | document |
110 | .querySelectorAll('.desktop-capturer-selection__btn') | ||
106 | .forEach((button) => { | 111 | .forEach((button) => { |
107 | button.addEventListener('click', async () => { | 112 | button.addEventListener('click', async () => { |
108 | try { | 113 | try { |
@@ -110,20 +115,22 @@ window.navigator.mediaDevices.getDisplayMedia = () => new Promise(async (resolve | |||
110 | if (id === CANCEL_ID) { | 115 | if (id === CANCEL_ID) { |
111 | reject(new Error('Cancelled by user')); | 116 | reject(new Error('Cancelled by user')); |
112 | } else { | 117 | } else { |
113 | const mediaSource = sources.find(source => source.id === id); | 118 | const mediaSource = sources.find((source) => source.id === id); |
114 | if (!mediaSource) { | 119 | if (!mediaSource) { |
115 | throw new Error(`Source with id ${id} does not exist`); | 120 | throw new Error(`Source with id ${id} does not exist`); |
116 | } | 121 | } |
117 | 122 | ||
118 | const stream = await window.navigator.mediaDevices.getUserMedia({ | 123 | const stream = await window.navigator.mediaDevices.getUserMedia( |
119 | audio: false, | 124 | { |
120 | video: { | 125 | audio: false, |
121 | mandatory: { | 126 | video: { |
122 | chromeMediaSource: 'desktop', | 127 | mandatory: { |
123 | chromeMediaSourceId: mediaSource.id, | 128 | chromeMediaSource: 'desktop', |
129 | chromeMediaSourceId: mediaSource.id, | ||
130 | }, | ||
124 | }, | 131 | }, |
125 | }, | 132 | }, |
126 | }); | 133 | ); |
127 | resolve(stream); | 134 | resolve(stream); |
128 | } | 135 | } |
129 | } catch (err) { | 136 | } catch (err) { |
@@ -136,4 +143,4 @@ window.navigator.mediaDevices.getDisplayMedia = () => new Promise(async (resolve | |||
136 | } catch (err) { | 143 | } catch (err) { |
137 | reject(err); | 144 | reject(err); |
138 | } | 145 | } |
139 | }); | 146 | }; |