diff options
40 files changed, 1804 insertions, 384 deletions
@@ -2,6 +2,7 @@ | |||
2 | "parser": "babel-eslint", | 2 | "parser": "babel-eslint", |
3 | "extends": "eslint-config-airbnb", | 3 | "extends": "eslint-config-airbnb", |
4 | "rules": { | 4 | "rules": { |
5 | "consistent-return": 0, | ||
5 | "no-param-reassign": 0, | 6 | "no-param-reassign": 0, |
6 | "import/extensions": 0, | 7 | "import/extensions": 0, |
7 | "import/no-extraneous-dependencies": 0, | 8 | "import/no-extraneous-dependencies": 0, |
@@ -14,7 +15,7 @@ | |||
14 | "react/jsx-filename-extension": [1, { | 15 | "react/jsx-filename-extension": [1, { |
15 | "extensions": [".js", ".jsx"] | 16 | "extensions": [".js", ".jsx"] |
16 | }], | 17 | }], |
17 | "react/forbid-prop-types": 1, | 18 | "react/forbid-prop-types": 0, |
18 | "react/destructuring-assignment": 1, | 19 | "react/destructuring-assignment": 1, |
19 | "prefer-destructuring": 1, | 20 | "prefer-destructuring": 1, |
20 | "no-underscore-dangle": 0, | 21 | "no-underscore-dangle": 0, |
diff --git a/.gitignore b/.gitignore index a5677f0b8..d38c475bf 100644 --- a/.gitignore +++ b/.gitignore | |||
@@ -1,3 +1,4 @@ | |||
1 | .idea | ||
1 | node_modules | 2 | node_modules |
2 | flow-typed | 3 | flow-typed |
3 | out | 4 | out |
diff --git a/package-lock.json b/package-lock.json index 8499abda9..1f1ac3c00 100644 --- a/package-lock.json +++ b/package-lock.json | |||
@@ -1442,7 +1442,7 @@ | |||
1442 | "@lerna/get-packed": { | 1442 | "@lerna/get-packed": { |
1443 | "version": "3.7.0", | 1443 | "version": "3.7.0", |
1444 | "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.7.0.tgz", | 1444 | "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.7.0.tgz", |
1445 | "integrity": "sha512-yuFtjsUZIHjeIvIYQ/QuytC+FQcHwo3peB+yGBST2uWCLUCR5rx6knoQcPzbxdFDCuUb5IFccFGd3B1fHFg3RQ==", | 1445 | "integrity": "sha1-VJx3OPe+XjsUM+gu2c2pEjvNHtU=", |
1446 | "dev": true, | 1446 | "dev": true, |
1447 | "requires": { | 1447 | "requires": { |
1448 | "fs-extra": "^7.0.0", | 1448 | "fs-extra": "^7.0.0", |
@@ -1567,7 +1567,7 @@ | |||
1567 | "@lerna/npm-conf": { | 1567 | "@lerna/npm-conf": { |
1568 | "version": "3.7.0", | 1568 | "version": "3.7.0", |
1569 | "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.7.0.tgz", | 1569 | "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.7.0.tgz", |
1570 | "integrity": "sha512-+WSMDfPKcKzMfqq283ydz9RRpOU6p9wfx0wy4hVSUY/6YUpsyuk8SShjcRtY8zTM5AOrxvFBuuV90H4YpZ5+Ng==", | 1570 | "integrity": "sha1-8QHU/fB8788RYbz688DxBbQgpFA=", |
1571 | "dev": true, | 1571 | "dev": true, |
1572 | "requires": { | 1572 | "requires": { |
1573 | "config-chain": "^1.1.11", | 1573 | "config-chain": "^1.1.11", |
@@ -1823,7 +1823,7 @@ | |||
1823 | "@lerna/run-parallel-batches": { | 1823 | "@lerna/run-parallel-batches": { |
1824 | "version": "3.0.0", | 1824 | "version": "3.0.0", |
1825 | "resolved": "https://registry.npmjs.org/@lerna/run-parallel-batches/-/run-parallel-batches-3.0.0.tgz", | 1825 | "resolved": "https://registry.npmjs.org/@lerna/run-parallel-batches/-/run-parallel-batches-3.0.0.tgz", |
1826 | "integrity": "sha512-Mj1ravlXF7AkkewKd9YFq9BtVrsStNrvVLedD/b2wIVbNqcxp8lS68vehXVOzoL/VWNEDotvqCQtyDBilCodGw==", | 1826 | "integrity": "sha1-RocEk0CEx0mR0xJNgGB4V9TfqEA=", |
1827 | "dev": true, | 1827 | "dev": true, |
1828 | "requires": { | 1828 | "requires": { |
1829 | "p-map": "^1.2.0", | 1829 | "p-map": "^1.2.0", |
@@ -1948,15 +1948,6 @@ | |||
1948 | "@meetfranz/theme": "^1.0.7", | 1948 | "@meetfranz/theme": "^1.0.7", |
1949 | "react-html-attributes": "^1.4.3", | 1949 | "react-html-attributes": "^1.4.3", |
1950 | "react-loader": "^2.4.5" | 1950 | "react-loader": "^2.4.5" |
1951 | }, | ||
1952 | "dependencies": { | ||
1953 | "@meetfranz/theme": { | ||
1954 | "version": "1.0.9", | ||
1955 | "bundled": true, | ||
1956 | "requires": { | ||
1957 | "color": "^3.1.0" | ||
1958 | } | ||
1959 | } | ||
1960 | } | 1951 | } |
1961 | }, | 1952 | }, |
1962 | "@meetfranz/theme": { | 1953 | "@meetfranz/theme": { |
@@ -1972,21 +1963,12 @@ | |||
1972 | "@mdi/react": "^1.1.0", | 1963 | "@mdi/react": "^1.1.0", |
1973 | "@meetfranz/theme": "^1.0.7", | 1964 | "@meetfranz/theme": "^1.0.7", |
1974 | "react-loader": "^2.4.5" | 1965 | "react-loader": "^2.4.5" |
1975 | }, | ||
1976 | "dependencies": { | ||
1977 | "@meetfranz/theme": { | ||
1978 | "version": "1.0.9", | ||
1979 | "bundled": true, | ||
1980 | "requires": { | ||
1981 | "color": "^3.1.0" | ||
1982 | } | ||
1983 | } | ||
1984 | } | 1966 | } |
1985 | }, | 1967 | }, |
1986 | "@mrmlnc/readdir-enhanced": { | 1968 | "@mrmlnc/readdir-enhanced": { |
1987 | "version": "2.2.1", | 1969 | "version": "2.2.1", |
1988 | "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", | 1970 | "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", |
1989 | "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", | 1971 | "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", |
1990 | "dev": true, | 1972 | "dev": true, |
1991 | "requires": { | 1973 | "requires": { |
1992 | "call-me-maybe": "^1.0.1", | 1974 | "call-me-maybe": "^1.0.1", |
@@ -1996,7 +1978,7 @@ | |||
1996 | "@nodelib/fs.stat": { | 1978 | "@nodelib/fs.stat": { |
1997 | "version": "1.1.3", | 1979 | "version": "1.1.3", |
1998 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", | 1980 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", |
1999 | "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", | 1981 | "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", |
2000 | "dev": true | 1982 | "dev": true |
2001 | }, | 1983 | }, |
2002 | "@octokit/endpoint": { | 1984 | "@octokit/endpoint": { |
@@ -2372,7 +2354,7 @@ | |||
2372 | "dependencies": { | 2354 | "dependencies": { |
2373 | "mime-types": { | 2355 | "mime-types": { |
2374 | "version": "1.0.2", | 2356 | "version": "1.0.2", |
2375 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", | 2357 | "resolved": "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", |
2376 | "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=", | 2358 | "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=", |
2377 | "dev": true | 2359 | "dev": true |
2378 | } | 2360 | } |
@@ -2430,7 +2412,7 @@ | |||
2430 | "agent-base": { | 2412 | "agent-base": { |
2431 | "version": "4.2.1", | 2413 | "version": "4.2.1", |
2432 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", | 2414 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", |
2433 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", | 2415 | "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", |
2434 | "dev": true, | 2416 | "dev": true, |
2435 | "requires": { | 2417 | "requires": { |
2436 | "es6-promisify": "^5.0.0" | 2418 | "es6-promisify": "^5.0.0" |
@@ -2439,7 +2421,7 @@ | |||
2439 | "agentkeepalive": { | 2421 | "agentkeepalive": { |
2440 | "version": "3.5.2", | 2422 | "version": "3.5.2", |
2441 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", | 2423 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", |
2442 | "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", | 2424 | "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", |
2443 | "dev": true, | 2425 | "dev": true, |
2444 | "requires": { | 2426 | "requires": { |
2445 | "humanize-ms": "^1.2.1" | 2427 | "humanize-ms": "^1.2.1" |
@@ -2486,7 +2468,7 @@ | |||
2486 | }, | 2468 | }, |
2487 | "ansi-colors": { | 2469 | "ansi-colors": { |
2488 | "version": "1.1.0", | 2470 | "version": "1.1.0", |
2489 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", | 2471 | "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", |
2490 | "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", | 2472 | "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", |
2491 | "dev": true, | 2473 | "dev": true, |
2492 | "requires": { | 2474 | "requires": { |
@@ -2913,7 +2895,7 @@ | |||
2913 | }, | 2895 | }, |
2914 | "util": { | 2896 | "util": { |
2915 | "version": "0.10.3", | 2897 | "version": "0.10.3", |
2916 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", | 2898 | "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", |
2917 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", | 2899 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", |
2918 | "dev": true, | 2900 | "dev": true, |
2919 | "requires": { | 2901 | "requires": { |
@@ -2948,7 +2930,7 @@ | |||
2948 | }, | 2930 | }, |
2949 | "async": { | 2931 | "async": { |
2950 | "version": "0.1.22", | 2932 | "version": "0.1.22", |
2951 | "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", | 2933 | "resolved": "http://registry.npmjs.org/async/-/async-0.1.22.tgz", |
2952 | "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" | 2934 | "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" |
2953 | }, | 2935 | }, |
2954 | "async-done": { | 2936 | "async-done": { |
@@ -3771,7 +3753,7 @@ | |||
3771 | "byte-size": { | 3753 | "byte-size": { |
3772 | "version": "4.0.4", | 3754 | "version": "4.0.4", |
3773 | "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.4.tgz", | 3755 | "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.4.tgz", |
3774 | "integrity": "sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==", | 3756 | "integrity": "sha1-KdOBcJ9BquDYnGMfHIGuyIzUCyM=", |
3775 | "dev": true | 3757 | "dev": true |
3776 | }, | 3758 | }, |
3777 | "bytes": { | 3759 | "bytes": { |
@@ -3783,7 +3765,7 @@ | |||
3783 | "cacache": { | 3765 | "cacache": { |
3784 | "version": "11.3.2", | 3766 | "version": "11.3.2", |
3785 | "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", | 3767 | "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", |
3786 | "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", | 3768 | "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", |
3787 | "dev": true, | 3769 | "dev": true, |
3788 | "requires": { | 3770 | "requires": { |
3789 | "bluebird": "^3.5.3", | 3771 | "bluebird": "^3.5.3", |
@@ -3805,7 +3787,7 @@ | |||
3805 | "lru-cache": { | 3787 | "lru-cache": { |
3806 | "version": "5.1.1", | 3788 | "version": "5.1.1", |
3807 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", | 3789 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", |
3808 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", | 3790 | "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", |
3809 | "dev": true, | 3791 | "dev": true, |
3810 | "requires": { | 3792 | "requires": { |
3811 | "yallist": "^3.0.2" | 3793 | "yallist": "^3.0.2" |
@@ -4502,7 +4484,7 @@ | |||
4502 | "config-chain": { | 4484 | "config-chain": { |
4503 | "version": "1.1.12", | 4485 | "version": "1.1.12", |
4504 | "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", | 4486 | "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", |
4505 | "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", | 4487 | "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", |
4506 | "dev": true, | 4488 | "dev": true, |
4507 | "requires": { | 4489 | "requires": { |
4508 | "ini": "^1.3.4", | 4490 | "ini": "^1.3.4", |
@@ -4548,7 +4530,7 @@ | |||
4548 | "dependencies": { | 4530 | "dependencies": { |
4549 | "debug": { | 4531 | "debug": { |
4550 | "version": "1.0.4", | 4532 | "version": "1.0.4", |
4551 | "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", | 4533 | "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", |
4552 | "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", | 4534 | "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", |
4553 | "dev": true, | 4535 | "dev": true, |
4554 | "requires": { | 4536 | "requires": { |
@@ -4818,7 +4800,7 @@ | |||
4818 | "conventional-recommended-bump": { | 4800 | "conventional-recommended-bump": { |
4819 | "version": "4.0.4", | 4801 | "version": "4.0.4", |
4820 | "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz", | 4802 | "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz", |
4821 | "integrity": "sha512-9mY5Yoblq+ZMqJpBzgS+RpSq+SUfP2miOR3H/NR9drGf08WCrY9B6HAGJZEm6+ThsVP917VHAahSOjM6k1vhPg==", | 4803 | "integrity": "sha1-BVQFhGQdPadYyIY8CXiPyutYaHI=", |
4822 | "dev": true, | 4804 | "dev": true, |
4823 | "requires": { | 4805 | "requires": { |
4824 | "concat-stream": "^1.6.0", | 4806 | "concat-stream": "^1.6.0", |
@@ -4909,7 +4891,7 @@ | |||
4909 | "copy-concurrently": { | 4891 | "copy-concurrently": { |
4910 | "version": "1.0.5", | 4892 | "version": "1.0.5", |
4911 | "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", | 4893 | "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", |
4912 | "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", | 4894 | "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", |
4913 | "dev": true, | 4895 | "dev": true, |
4914 | "requires": { | 4896 | "requires": { |
4915 | "aproba": "^1.1.1", | 4897 | "aproba": "^1.1.1", |
@@ -5489,7 +5471,7 @@ | |||
5489 | "diff": { | 5471 | "diff": { |
5490 | "version": "3.5.0", | 5472 | "version": "3.5.0", |
5491 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", | 5473 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", |
5492 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", | 5474 | "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", |
5493 | "dev": true | 5475 | "dev": true |
5494 | }, | 5476 | }, |
5495 | "diffie-hellman": { | 5477 | "diffie-hellman": { |
@@ -5506,7 +5488,7 @@ | |||
5506 | "dir-glob": { | 5488 | "dir-glob": { |
5507 | "version": "2.0.0", | 5489 | "version": "2.0.0", |
5508 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", | 5490 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", |
5509 | "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", | 5491 | "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", |
5510 | "dev": true, | 5492 | "dev": true, |
5511 | "requires": { | 5493 | "requires": { |
5512 | "arrify": "^1.0.1", | 5494 | "arrify": "^1.0.1", |
@@ -5591,7 +5573,7 @@ | |||
5591 | "dependencies": { | 5573 | "dependencies": { |
5592 | "domelementtype": { | 5574 | "domelementtype": { |
5593 | "version": "1.1.3", | 5575 | "version": "1.1.3", |
5594 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", | 5576 | "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", |
5595 | "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" | 5577 | "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" |
5596 | } | 5578 | } |
5597 | } | 5579 | } |
@@ -5635,7 +5617,7 @@ | |||
5635 | }, | 5617 | }, |
5636 | "dotenv": { | 5618 | "dotenv": { |
5637 | "version": "4.0.0", | 5619 | "version": "4.0.0", |
5638 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", | 5620 | "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", |
5639 | "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", | 5621 | "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", |
5640 | "dev": true | 5622 | "dev": true |
5641 | }, | 5623 | }, |
@@ -5655,7 +5637,7 @@ | |||
5655 | }, | 5637 | }, |
5656 | "duplexer": { | 5638 | "duplexer": { |
5657 | "version": "0.1.1", | 5639 | "version": "0.1.1", |
5658 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", | 5640 | "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", |
5659 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", | 5641 | "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", |
5660 | "dev": true | 5642 | "dev": true |
5661 | }, | 5643 | }, |
@@ -5966,7 +5948,7 @@ | |||
5966 | }, | 5948 | }, |
5967 | "readable-stream": { | 5949 | "readable-stream": { |
5968 | "version": "1.1.14", | 5950 | "version": "1.1.14", |
5969 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", | 5951 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", |
5970 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", | 5952 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", |
5971 | "dev": true, | 5953 | "dev": true, |
5972 | "requires": { | 5954 | "requires": { |
@@ -6488,7 +6470,7 @@ | |||
6488 | }, | 6470 | }, |
6489 | "debug": { | 6471 | "debug": { |
6490 | "version": "2.3.3", | 6472 | "version": "2.3.3", |
6491 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", | 6473 | "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", |
6492 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", | 6474 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", |
6493 | "dev": true, | 6475 | "dev": true, |
6494 | "requires": { | 6476 | "requires": { |
@@ -6497,7 +6479,7 @@ | |||
6497 | }, | 6479 | }, |
6498 | "ms": { | 6480 | "ms": { |
6499 | "version": "0.7.2", | 6481 | "version": "0.7.2", |
6500 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", | 6482 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", |
6501 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", | 6483 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", |
6502 | "dev": true | 6484 | "dev": true |
6503 | }, | 6485 | }, |
@@ -6531,7 +6513,7 @@ | |||
6531 | "dependencies": { | 6513 | "dependencies": { |
6532 | "debug": { | 6514 | "debug": { |
6533 | "version": "2.3.3", | 6515 | "version": "2.3.3", |
6534 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", | 6516 | "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", |
6535 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", | 6517 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", |
6536 | "dev": true, | 6518 | "dev": true, |
6537 | "requires": { | 6519 | "requires": { |
@@ -6540,7 +6522,7 @@ | |||
6540 | }, | 6522 | }, |
6541 | "ms": { | 6523 | "ms": { |
6542 | "version": "0.7.2", | 6524 | "version": "0.7.2", |
6543 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", | 6525 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", |
6544 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", | 6526 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", |
6545 | "dev": true | 6527 | "dev": true |
6546 | } | 6528 | } |
@@ -6664,12 +6646,12 @@ | |||
6664 | "es6-promise": { | 6646 | "es6-promise": { |
6665 | "version": "4.2.5", | 6647 | "version": "4.2.5", |
6666 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", | 6648 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", |
6667 | "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", | 6649 | "integrity": "sha1-2m0NVpLvtGHggsFIF/4kJ9j10FQ=", |
6668 | "dev": true | 6650 | "dev": true |
6669 | }, | 6651 | }, |
6670 | "es6-promisify": { | 6652 | "es6-promisify": { |
6671 | "version": "5.0.0", | 6653 | "version": "5.0.0", |
6672 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", | 6654 | "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", |
6673 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", | 6655 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", |
6674 | "dev": true, | 6656 | "dev": true, |
6675 | "requires": { | 6657 | "requires": { |
@@ -6876,7 +6858,7 @@ | |||
6876 | }, | 6858 | }, |
6877 | "load-json-file": { | 6859 | "load-json-file": { |
6878 | "version": "2.0.0", | 6860 | "version": "2.0.0", |
6879 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", | 6861 | "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", |
6880 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", | 6862 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", |
6881 | "dev": true, | 6863 | "dev": true, |
6882 | "requires": { | 6864 | "requires": { |
@@ -7359,7 +7341,7 @@ | |||
7359 | }, | 7341 | }, |
7360 | "finalhandler": { | 7342 | "finalhandler": { |
7361 | "version": "1.1.1", | 7343 | "version": "1.1.1", |
7362 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", | 7344 | "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", |
7363 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", | 7345 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", |
7364 | "dev": true, | 7346 | "dev": true, |
7365 | "requires": { | 7347 | "requires": { |
@@ -7687,7 +7669,7 @@ | |||
7687 | "figgy-pudding": { | 7669 | "figgy-pudding": { |
7688 | "version": "3.5.1", | 7670 | "version": "3.5.1", |
7689 | "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", | 7671 | "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", |
7690 | "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", | 7672 | "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", |
7691 | "dev": true | 7673 | "dev": true |
7692 | }, | 7674 | }, |
7693 | "figures": { | 7675 | "figures": { |
@@ -7745,7 +7727,7 @@ | |||
7745 | }, | 7727 | }, |
7746 | "finalhandler": { | 7728 | "finalhandler": { |
7747 | "version": "0.1.0", | 7729 | "version": "0.1.0", |
7748 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", | 7730 | "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", |
7749 | "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=", | 7731 | "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=", |
7750 | "dev": true, | 7732 | "dev": true, |
7751 | "requires": { | 7733 | "requires": { |
@@ -7755,7 +7737,7 @@ | |||
7755 | "dependencies": { | 7737 | "dependencies": { |
7756 | "debug": { | 7738 | "debug": { |
7757 | "version": "1.0.4", | 7739 | "version": "1.0.4", |
7758 | "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", | 7740 | "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", |
7759 | "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", | 7741 | "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", |
7760 | "dev": true, | 7742 | "dev": true, |
7761 | "requires": { | 7743 | "requires": { |
@@ -7764,7 +7746,7 @@ | |||
7764 | }, | 7746 | }, |
7765 | "ms": { | 7747 | "ms": { |
7766 | "version": "0.6.2", | 7748 | "version": "0.6.2", |
7767 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", | 7749 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz", |
7768 | "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", | 7750 | "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", |
7769 | "dev": true | 7751 | "dev": true |
7770 | } | 7752 | } |
@@ -8109,30 +8091,36 @@ | |||
8109 | "dependencies": { | 8091 | "dependencies": { |
8110 | "abbrev": { | 8092 | "abbrev": { |
8111 | "version": "1.1.1", | 8093 | "version": "1.1.1", |
8112 | "bundled": true | 8094 | "resolved": false, |
8095 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" | ||
8113 | }, | 8096 | }, |
8114 | "ansi-regex": { | 8097 | "ansi-regex": { |
8115 | "version": "2.1.1", | 8098 | "version": "2.1.1", |
8116 | "bundled": true | 8099 | "resolved": false, |
8100 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" | ||
8117 | }, | 8101 | }, |
8118 | "aproba": { | 8102 | "aproba": { |
8119 | "version": "1.2.0", | 8103 | "version": "1.2.0", |
8120 | "bundled": true | 8104 | "resolved": false, |
8105 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" | ||
8121 | }, | 8106 | }, |
8122 | "are-we-there-yet": { | 8107 | "are-we-there-yet": { |
8123 | "version": "1.1.5", | 8108 | "version": "1.1.5", |
8124 | "bundled": true, | 8109 | "resolved": false, |
8110 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", | ||
8125 | "requires": { | 8111 | "requires": { |
8126 | "delegates": "^1.0.0" | 8112 | "delegates": "^1.0.0" |
8127 | } | 8113 | } |
8128 | }, | 8114 | }, |
8129 | "balanced-match": { | 8115 | "balanced-match": { |
8130 | "version": "1.0.0", | 8116 | "version": "1.0.0", |
8131 | "bundled": true | 8117 | "resolved": false, |
8118 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" | ||
8132 | }, | 8119 | }, |
8133 | "brace-expansion": { | 8120 | "brace-expansion": { |
8134 | "version": "1.1.11", | 8121 | "version": "1.1.11", |
8135 | "bundled": true, | 8122 | "resolved": false, |
8123 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||
8136 | "requires": { | 8124 | "requires": { |
8137 | "balanced-match": "^1.0.0", | 8125 | "balanced-match": "^1.0.0", |
8138 | "concat-map": "0.0.1" | 8126 | "concat-map": "0.0.1" |
@@ -8140,54 +8128,66 @@ | |||
8140 | }, | 8128 | }, |
8141 | "chownr": { | 8129 | "chownr": { |
8142 | "version": "1.1.1", | 8130 | "version": "1.1.1", |
8143 | "bundled": true | 8131 | "resolved": false, |
8132 | "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" | ||
8144 | }, | 8133 | }, |
8145 | "code-point-at": { | 8134 | "code-point-at": { |
8146 | "version": "1.1.0", | 8135 | "version": "1.1.0", |
8147 | "bundled": true | 8136 | "resolved": false, |
8137 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" | ||
8148 | }, | 8138 | }, |
8149 | "concat-map": { | 8139 | "concat-map": { |
8150 | "version": "0.0.1", | 8140 | "version": "0.0.1", |
8151 | "bundled": true | 8141 | "resolved": false, |
8142 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | ||
8152 | }, | 8143 | }, |
8153 | "console-control-strings": { | 8144 | "console-control-strings": { |
8154 | "version": "1.1.0", | 8145 | "version": "1.1.0", |
8155 | "bundled": true | 8146 | "resolved": false, |
8147 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" | ||
8156 | }, | 8148 | }, |
8157 | "core-util-is": { | 8149 | "core-util-is": { |
8158 | "version": "1.0.2", | 8150 | "version": "1.0.2", |
8159 | "bundled": true | 8151 | "resolved": false, |
8152 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" | ||
8160 | }, | 8153 | }, |
8161 | "debug": { | 8154 | "debug": { |
8162 | "version": "2.6.9", | 8155 | "version": "2.6.9", |
8163 | "bundled": true | 8156 | "resolved": false, |
8157 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" | ||
8164 | }, | 8158 | }, |
8165 | "deep-extend": { | 8159 | "deep-extend": { |
8166 | "version": "0.6.0", | 8160 | "version": "0.6.0", |
8167 | "bundled": true | 8161 | "resolved": false, |
8162 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" | ||
8168 | }, | 8163 | }, |
8169 | "delegates": { | 8164 | "delegates": { |
8170 | "version": "1.0.0", | 8165 | "version": "1.0.0", |
8171 | "bundled": true | 8166 | "resolved": false, |
8167 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" | ||
8172 | }, | 8168 | }, |
8173 | "detect-libc": { | 8169 | "detect-libc": { |
8174 | "version": "1.0.3", | 8170 | "version": "1.0.3", |
8175 | "bundled": true | 8171 | "resolved": false, |
8172 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" | ||
8176 | }, | 8173 | }, |
8177 | "fs-minipass": { | 8174 | "fs-minipass": { |
8178 | "version": "1.2.5", | 8175 | "version": "1.2.5", |
8179 | "bundled": true, | 8176 | "resolved": false, |
8177 | "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", | ||
8180 | "requires": { | 8178 | "requires": { |
8181 | "minipass": "^2.2.1" | 8179 | "minipass": "^2.2.1" |
8182 | } | 8180 | } |
8183 | }, | 8181 | }, |
8184 | "fs.realpath": { | 8182 | "fs.realpath": { |
8185 | "version": "1.0.0", | 8183 | "version": "1.0.0", |
8186 | "bundled": true | 8184 | "resolved": false, |
8185 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" | ||
8187 | }, | 8186 | }, |
8188 | "gauge": { | 8187 | "gauge": { |
8189 | "version": "2.7.4", | 8188 | "version": "2.7.4", |
8190 | "bundled": true, | 8189 | "resolved": false, |
8190 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", | ||
8191 | "requires": { | 8191 | "requires": { |
8192 | "aproba": "^1.0.3", | 8192 | "aproba": "^1.0.3", |
8193 | "console-control-strings": "^1.0.0", | 8193 | "console-control-strings": "^1.0.0", |
@@ -8199,7 +8199,8 @@ | |||
8199 | }, | 8199 | }, |
8200 | "glob": { | 8200 | "glob": { |
8201 | "version": "7.1.3", | 8201 | "version": "7.1.3", |
8202 | "bundled": true, | 8202 | "resolved": false, |
8203 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", | ||
8203 | "requires": { | 8204 | "requires": { |
8204 | "fs.realpath": "^1.0.0", | 8205 | "fs.realpath": "^1.0.0", |
8205 | "inflight": "^1.0.4", | 8206 | "inflight": "^1.0.4", |
@@ -8211,25 +8212,29 @@ | |||
8211 | }, | 8212 | }, |
8212 | "has-unicode": { | 8213 | "has-unicode": { |
8213 | "version": "2.0.1", | 8214 | "version": "2.0.1", |
8214 | "bundled": true | 8215 | "resolved": false, |
8216 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" | ||
8215 | }, | 8217 | }, |
8216 | "iconv-lite": { | 8218 | "iconv-lite": { |
8217 | "version": "0.4.24", | 8219 | "version": "0.4.24", |
8218 | "bundled": true, | 8220 | "resolved": false, |
8221 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
8219 | "requires": { | 8222 | "requires": { |
8220 | "safer-buffer": ">= 2.1.2 < 3" | 8223 | "safer-buffer": ">= 2.1.2 < 3" |
8221 | } | 8224 | } |
8222 | }, | 8225 | }, |
8223 | "ignore-walk": { | 8226 | "ignore-walk": { |
8224 | "version": "3.0.1", | 8227 | "version": "3.0.1", |
8225 | "bundled": true, | 8228 | "resolved": false, |
8229 | "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", | ||
8226 | "requires": { | 8230 | "requires": { |
8227 | "minimatch": "^3.0.4" | 8231 | "minimatch": "^3.0.4" |
8228 | } | 8232 | } |
8229 | }, | 8233 | }, |
8230 | "inflight": { | 8234 | "inflight": { |
8231 | "version": "1.0.6", | 8235 | "version": "1.0.6", |
8232 | "bundled": true, | 8236 | "resolved": false, |
8237 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||
8233 | "requires": { | 8238 | "requires": { |
8234 | "once": "^1.3.0", | 8239 | "once": "^1.3.0", |
8235 | "wrappy": "1" | 8240 | "wrappy": "1" |
@@ -8237,15 +8242,18 @@ | |||
8237 | }, | 8242 | }, |
8238 | "inherits": { | 8243 | "inherits": { |
8239 | "version": "2.0.3", | 8244 | "version": "2.0.3", |
8240 | "bundled": true | 8245 | "resolved": false, |
8246 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" | ||
8241 | }, | 8247 | }, |
8242 | "ini": { | 8248 | "ini": { |
8243 | "version": "1.3.5", | 8249 | "version": "1.3.5", |
8244 | "bundled": true | 8250 | "resolved": false, |
8251 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" | ||
8245 | }, | 8252 | }, |
8246 | "is-fullwidth-code-point": { | 8253 | "is-fullwidth-code-point": { |
8247 | "version": "1.0.0", | 8254 | "version": "1.0.0", |
8248 | "bundled": true, | 8255 | "resolved": false, |
8256 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", | ||
8249 | "requires": { | 8257 | "requires": { |
8250 | "number-is-nan": "^1.0.0" | 8258 | "number-is-nan": "^1.0.0" |
8251 | } | 8259 | } |
@@ -8341,7 +8349,7 @@ | |||
8341 | "genfun": { | 8349 | "genfun": { |
8342 | "version": "5.0.0", | 8350 | "version": "5.0.0", |
8343 | "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", | 8351 | "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", |
8344 | "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", | 8352 | "integrity": "sha1-ndlxCgaQClxKW/V6yl2k5S/nZTc=", |
8345 | "dev": true | 8353 | "dev": true |
8346 | }, | 8354 | }, |
8347 | "get-caller-file": { | 8355 | "get-caller-file": { |
@@ -8880,7 +8888,7 @@ | |||
8880 | }, | 8888 | }, |
8881 | "got": { | 8889 | "got": { |
8882 | "version": "6.7.1", | 8890 | "version": "6.7.1", |
8883 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", | 8891 | "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", |
8884 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", | 8892 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", |
8885 | "dev": true, | 8893 | "dev": true, |
8886 | "requires": { | 8894 | "requires": { |
@@ -9462,7 +9470,7 @@ | |||
9462 | }, | 9470 | }, |
9463 | "yargs": { | 9471 | "yargs": { |
9464 | "version": "3.32.0", | 9472 | "version": "3.32.0", |
9465 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", | 9473 | "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", |
9466 | "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", | 9474 | "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", |
9467 | "dev": true, | 9475 | "dev": true, |
9468 | "requires": { | 9476 | "requires": { |
@@ -9637,7 +9645,7 @@ | |||
9637 | }, | 9645 | }, |
9638 | "lodash": { | 9646 | "lodash": { |
9639 | "version": "1.0.2", | 9647 | "version": "1.0.2", |
9640 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", | 9648 | "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", |
9641 | "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", | 9649 | "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", |
9642 | "dev": true | 9650 | "dev": true |
9643 | }, | 9651 | }, |
@@ -9697,7 +9705,7 @@ | |||
9697 | }, | 9705 | }, |
9698 | "readable-stream": { | 9706 | "readable-stream": { |
9699 | "version": "1.0.34", | 9707 | "version": "1.0.34", |
9700 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", | 9708 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", |
9701 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", | 9709 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", |
9702 | "dev": true, | 9710 | "dev": true, |
9703 | "requires": { | 9711 | "requires": { |
@@ -10278,7 +10286,7 @@ | |||
10278 | "http-cache-semantics": { | 10286 | "http-cache-semantics": { |
10279 | "version": "3.8.1", | 10287 | "version": "3.8.1", |
10280 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", | 10288 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", |
10281 | "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", | 10289 | "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=", |
10282 | "dev": true | 10290 | "dev": true |
10283 | }, | 10291 | }, |
10284 | "http-deceiver": { | 10292 | "http-deceiver": { |
@@ -10289,7 +10297,7 @@ | |||
10289 | }, | 10297 | }, |
10290 | "http-errors": { | 10298 | "http-errors": { |
10291 | "version": "1.6.3", | 10299 | "version": "1.6.3", |
10292 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", | 10300 | "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", |
10293 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", | 10301 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", |
10294 | "dev": true, | 10302 | "dev": true, |
10295 | "requires": { | 10303 | "requires": { |
@@ -10327,7 +10335,7 @@ | |||
10327 | "http-proxy-agent": { | 10335 | "http-proxy-agent": { |
10328 | "version": "2.1.0", | 10336 | "version": "2.1.0", |
10329 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", | 10337 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", |
10330 | "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", | 10338 | "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", |
10331 | "dev": true, | 10339 | "dev": true, |
10332 | "requires": { | 10340 | "requires": { |
10333 | "agent-base": "4", | 10341 | "agent-base": "4", |
@@ -10337,7 +10345,7 @@ | |||
10337 | "debug": { | 10345 | "debug": { |
10338 | "version": "3.1.0", | 10346 | "version": "3.1.0", |
10339 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", | 10347 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", |
10340 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", | 10348 | "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", |
10341 | "dev": true, | 10349 | "dev": true, |
10342 | "requires": { | 10350 | "requires": { |
10343 | "ms": "2.0.0" | 10351 | "ms": "2.0.0" |
@@ -10385,7 +10393,7 @@ | |||
10385 | "https-proxy-agent": { | 10393 | "https-proxy-agent": { |
10386 | "version": "2.2.1", | 10394 | "version": "2.2.1", |
10387 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", | 10395 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", |
10388 | "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", | 10396 | "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", |
10389 | "dev": true, | 10397 | "dev": true, |
10390 | "requires": { | 10398 | "requires": { |
10391 | "agent-base": "^4.1.0", | 10399 | "agent-base": "^4.1.0", |
@@ -10395,7 +10403,7 @@ | |||
10395 | "debug": { | 10403 | "debug": { |
10396 | "version": "3.2.6", | 10404 | "version": "3.2.6", |
10397 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", | 10405 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", |
10398 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", | 10406 | "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", |
10399 | "dev": true, | 10407 | "dev": true, |
10400 | "requires": { | 10408 | "requires": { |
10401 | "ms": "^2.1.1" | 10409 | "ms": "^2.1.1" |
@@ -10404,7 +10412,7 @@ | |||
10404 | "ms": { | 10412 | "ms": { |
10405 | "version": "2.1.1", | 10413 | "version": "2.1.1", |
10406 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", | 10414 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", |
10407 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", | 10415 | "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", |
10408 | "dev": true | 10416 | "dev": true |
10409 | } | 10417 | } |
10410 | } | 10418 | } |
@@ -10420,7 +10428,7 @@ | |||
10420 | }, | 10428 | }, |
10421 | "hunspell-asm": { | 10429 | "hunspell-asm": { |
10422 | "version": "1.0.2", | 10430 | "version": "1.0.2", |
10423 | "resolved": "https://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", | 10431 | "resolved": "http://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", |
10424 | "integrity": "sha512-UTLBvc0yZiIcHl9qrgxnFTZbX3zF4CprzEY+u+N0iXlUKZnUJRIgvgppTdgiQTsucm5b0aN/rHsgXz2q/0kBRA==", | 10432 | "integrity": "sha512-UTLBvc0yZiIcHl9qrgxnFTZbX3zF4CprzEY+u+N0iXlUKZnUJRIgvgppTdgiQTsucm5b0aN/rHsgXz2q/0kBRA==", |
10425 | "requires": { | 10433 | "requires": { |
10426 | "emscripten-wasm-loader": "^1.0.0", | 10434 | "emscripten-wasm-loader": "^1.0.0", |
@@ -10498,7 +10506,7 @@ | |||
10498 | "ignore-walk": { | 10506 | "ignore-walk": { |
10499 | "version": "3.0.1", | 10507 | "version": "3.0.1", |
10500 | "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", | 10508 | "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", |
10501 | "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", | 10509 | "integrity": "sha1-qD5i59JyrA47VRqqgoMaGbafgvg=", |
10502 | "dev": true, | 10510 | "dev": true, |
10503 | "requires": { | 10511 | "requires": { |
10504 | "minimatch": "^3.0.4" | 10512 | "minimatch": "^3.0.4" |
@@ -10540,7 +10548,7 @@ | |||
10540 | "import-local": { | 10548 | "import-local": { |
10541 | "version": "1.0.0", | 10549 | "version": "1.0.0", |
10542 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", | 10550 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", |
10543 | "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", | 10551 | "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", |
10544 | "dev": true, | 10552 | "dev": true, |
10545 | "requires": { | 10553 | "requires": { |
10546 | "pkg-dir": "^2.0.0", | 10554 | "pkg-dir": "^2.0.0", |
@@ -10604,7 +10612,7 @@ | |||
10604 | "init-package-json": { | 10612 | "init-package-json": { |
10605 | "version": "1.10.3", | 10613 | "version": "1.10.3", |
10606 | "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", | 10614 | "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", |
10607 | "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", | 10615 | "integrity": "sha1-Rf/i9hCoyhNPK9HbVjeyNQcPbL4=", |
10608 | "dev": true, | 10616 | "dev": true, |
10609 | "requires": { | 10617 | "requires": { |
10610 | "glob": "^7.1.1", | 10618 | "glob": "^7.1.1", |
@@ -10708,7 +10716,7 @@ | |||
10708 | "inversify": { | 10716 | "inversify": { |
10709 | "version": "5.0.1", | 10717 | "version": "5.0.1", |
10710 | "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", | 10718 | "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", |
10711 | "integrity": "sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==", | 10719 | "integrity": "sha1-UA1wmxQ0iWzloNWJFcSkIQ40+24=", |
10712 | "dev": true | 10720 | "dev": true |
10713 | }, | 10721 | }, |
10714 | "invert-kv": { | 10722 | "invert-kv": { |
@@ -10737,7 +10745,7 @@ | |||
10737 | }, | 10745 | }, |
10738 | "is": { | 10746 | "is": { |
10739 | "version": "0.3.0", | 10747 | "version": "0.3.0", |
10740 | "resolved": "https://registry.npmjs.org/is/-/is-0.3.0.tgz", | 10748 | "resolved": "http://registry.npmjs.org/is/-/is-0.3.0.tgz", |
10741 | "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=", | 10749 | "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=", |
10742 | "dev": true | 10750 | "dev": true |
10743 | }, | 10751 | }, |
@@ -10961,7 +10969,7 @@ | |||
10961 | }, | 10969 | }, |
10962 | "is-obj": { | 10970 | "is-obj": { |
10963 | "version": "1.0.1", | 10971 | "version": "1.0.1", |
10964 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", | 10972 | "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", |
10965 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", | 10973 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", |
10966 | "dev": true | 10974 | "dev": true |
10967 | }, | 10975 | }, |
@@ -11143,7 +11151,7 @@ | |||
11143 | }, | 11151 | }, |
11144 | "isemail": { | 11152 | "isemail": { |
11145 | "version": "1.2.0", | 11153 | "version": "1.2.0", |
11146 | "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", | 11154 | "resolved": "http://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", |
11147 | "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" | 11155 | "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" |
11148 | }, | 11156 | }, |
11149 | "isexe": { | 11157 | "isexe": { |
@@ -11174,7 +11182,7 @@ | |||
11174 | }, | 11182 | }, |
11175 | "joi": { | 11183 | "joi": { |
11176 | "version": "6.10.1", | 11184 | "version": "6.10.1", |
11177 | "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", | 11185 | "resolved": "http://registry.npmjs.org/joi/-/joi-6.10.1.tgz", |
11178 | "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", | 11186 | "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", |
11179 | "requires": { | 11187 | "requires": { |
11180 | "hoek": "2.x.x", | 11188 | "hoek": "2.x.x", |
@@ -11581,7 +11589,7 @@ | |||
11581 | "libnpmaccess": { | 11589 | "libnpmaccess": { |
11582 | "version": "3.0.1", | 11590 | "version": "3.0.1", |
11583 | "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.1.tgz", | 11591 | "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.1.tgz", |
11584 | "integrity": "sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==", | 11592 | "integrity": "sha1-Wzqd5iHyk9QlGRqi53kQL4QWf6g=", |
11585 | "dev": true, | 11593 | "dev": true, |
11586 | "requires": { | 11594 | "requires": { |
11587 | "aproba": "^2.0.0", | 11595 | "aproba": "^2.0.0", |
@@ -11593,7 +11601,7 @@ | |||
11593 | "aproba": { | 11601 | "aproba": { |
11594 | "version": "2.0.0", | 11602 | "version": "2.0.0", |
11595 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", | 11603 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", |
11596 | "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", | 11604 | "integrity": "sha1-UlILiuW1aSFbNU78DKo/4eRaitw=", |
11597 | "dev": true | 11605 | "dev": true |
11598 | } | 11606 | } |
11599 | } | 11607 | } |
@@ -12039,7 +12047,7 @@ | |||
12039 | "make-fetch-happen": { | 12047 | "make-fetch-happen": { |
12040 | "version": "4.0.1", | 12048 | "version": "4.0.1", |
12041 | "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", | 12049 | "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", |
12042 | "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", | 12050 | "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", |
12043 | "dev": true, | 12051 | "dev": true, |
12044 | "requires": { | 12052 | "requires": { |
12045 | "agentkeepalive": "^3.4.1", | 12053 | "agentkeepalive": "^3.4.1", |
@@ -12130,7 +12138,7 @@ | |||
12130 | }, | 12138 | }, |
12131 | "media-typer": { | 12139 | "media-typer": { |
12132 | "version": "0.3.0", | 12140 | "version": "0.3.0", |
12133 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | 12141 | "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", |
12134 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", | 12142 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", |
12135 | "dev": true | 12143 | "dev": true |
12136 | }, | 12144 | }, |
@@ -12221,7 +12229,7 @@ | |||
12221 | }, | 12229 | }, |
12222 | "readable-stream": { | 12230 | "readable-stream": { |
12223 | "version": "1.0.34", | 12231 | "version": "1.0.34", |
12224 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", | 12232 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", |
12225 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", | 12233 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", |
12226 | "dev": true, | 12234 | "dev": true, |
12227 | "requires": { | 12235 | "requires": { |
@@ -12252,7 +12260,7 @@ | |||
12252 | "merge2": { | 12260 | "merge2": { |
12253 | "version": "1.2.3", | 12261 | "version": "1.2.3", |
12254 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", | 12262 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", |
12255 | "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", | 12263 | "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=", |
12256 | "dev": true | 12264 | "dev": true |
12257 | }, | 12265 | }, |
12258 | "methods": { | 12266 | "methods": { |
@@ -12346,7 +12354,7 @@ | |||
12346 | }, | 12354 | }, |
12347 | "minimist": { | 12355 | "minimist": { |
12348 | "version": "1.2.0", | 12356 | "version": "1.2.0", |
12349 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", | 12357 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", |
12350 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", | 12358 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", |
12351 | "dev": true | 12359 | "dev": true |
12352 | }, | 12360 | }, |
@@ -12380,7 +12388,7 @@ | |||
12380 | "mississippi": { | 12388 | "mississippi": { |
12381 | "version": "3.0.0", | 12389 | "version": "3.0.0", |
12382 | "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", | 12390 | "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", |
12383 | "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", | 12391 | "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", |
12384 | "dev": true, | 12392 | "dev": true, |
12385 | "requires": { | 12393 | "requires": { |
12386 | "concat-stream": "^1.5.0", | 12394 | "concat-stream": "^1.5.0", |
@@ -12418,7 +12426,7 @@ | |||
12418 | }, | 12426 | }, |
12419 | "mkdirp": { | 12427 | "mkdirp": { |
12420 | "version": "0.5.1", | 12428 | "version": "0.5.1", |
12421 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", | 12429 | "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", |
12422 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", | 12430 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", |
12423 | "requires": { | 12431 | "requires": { |
12424 | "minimist": "0.0.8" | 12432 | "minimist": "0.0.8" |
@@ -12426,7 +12434,7 @@ | |||
12426 | "dependencies": { | 12434 | "dependencies": { |
12427 | "minimist": { | 12435 | "minimist": { |
12428 | "version": "0.0.8", | 12436 | "version": "0.0.8", |
12429 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", | 12437 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", |
12430 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" | 12438 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" |
12431 | } | 12439 | } |
12432 | } | 12440 | } |
@@ -12598,7 +12606,7 @@ | |||
12598 | }, | 12606 | }, |
12599 | "multimatch": { | 12607 | "multimatch": { |
12600 | "version": "2.1.0", | 12608 | "version": "2.1.0", |
12601 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", | 12609 | "resolved": "http://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", |
12602 | "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", | 12610 | "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", |
12603 | "dev": true, | 12611 | "dev": true, |
12604 | "requires": { | 12612 | "requires": { |
@@ -12736,7 +12744,7 @@ | |||
12736 | "node-fetch-npm": { | 12744 | "node-fetch-npm": { |
12737 | "version": "2.0.2", | 12745 | "version": "2.0.2", |
12738 | "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", | 12746 | "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", |
12739 | "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", | 12747 | "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", |
12740 | "dev": true, | 12748 | "dev": true, |
12741 | "requires": { | 12749 | "requires": { |
12742 | "encoding": "^0.1.11", | 12750 | "encoding": "^0.1.11", |
@@ -12772,7 +12780,7 @@ | |||
12772 | "dependencies": { | 12780 | "dependencies": { |
12773 | "semver": { | 12781 | "semver": { |
12774 | "version": "5.3.0", | 12782 | "version": "5.3.0", |
12775 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", | 12783 | "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", |
12776 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", | 12784 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", |
12777 | "dev": true | 12785 | "dev": true |
12778 | }, | 12786 | }, |
@@ -13950,7 +13958,7 @@ | |||
13950 | "p-map": { | 13958 | "p-map": { |
13951 | "version": "1.2.0", | 13959 | "version": "1.2.0", |
13952 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", | 13960 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", |
13953 | "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", | 13961 | "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", |
13954 | "dev": true | 13962 | "dev": true |
13955 | }, | 13963 | }, |
13956 | "p-map-series": { | 13964 | "p-map-series": { |
@@ -14123,7 +14131,7 @@ | |||
14123 | "dependencies": { | 14131 | "dependencies": { |
14124 | "color-convert": { | 14132 | "color-convert": { |
14125 | "version": "0.5.3", | 14133 | "version": "0.5.3", |
14126 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", | 14134 | "resolved": "http://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", |
14127 | "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", | 14135 | "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", |
14128 | "dev": true | 14136 | "dev": true |
14129 | } | 14137 | } |
@@ -14268,7 +14276,7 @@ | |||
14268 | }, | 14276 | }, |
14269 | "path-browserify": { | 14277 | "path-browserify": { |
14270 | "version": "0.0.0", | 14278 | "version": "0.0.0", |
14271 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", | 14279 | "resolved": "http://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", |
14272 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", | 14280 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", |
14273 | "dev": true | 14281 | "dev": true |
14274 | }, | 14282 | }, |
@@ -14547,7 +14555,7 @@ | |||
14547 | }, | 14555 | }, |
14548 | "pretty-hrtime": { | 14556 | "pretty-hrtime": { |
14549 | "version": "1.0.3", | 14557 | "version": "1.0.3", |
14550 | "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", | 14558 | "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", |
14551 | "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", | 14559 | "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", |
14552 | "dev": true | 14560 | "dev": true |
14553 | }, | 14561 | }, |
@@ -14692,7 +14700,7 @@ | |||
14692 | "protoduck": { | 14700 | "protoduck": { |
14693 | "version": "5.0.1", | 14701 | "version": "5.0.1", |
14694 | "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", | 14702 | "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", |
14695 | "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", | 14703 | "integrity": "sha1-A8NlnKGAB7aaUP2Cp+vMUWJhFR8=", |
14696 | "dev": true, | 14704 | "dev": true, |
14697 | "requires": { | 14705 | "requires": { |
14698 | "genfun": "^5.0.0" | 14706 | "genfun": "^5.0.0" |
@@ -15052,7 +15060,7 @@ | |||
15052 | }, | 15060 | }, |
15053 | "react-router": { | 15061 | "react-router": { |
15054 | "version": "3.2.1", | 15062 | "version": "3.2.1", |
15055 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", | 15063 | "resolved": "http://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", |
15056 | "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==", | 15064 | "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==", |
15057 | "requires": { | 15065 | "requires": { |
15058 | "create-react-class": "^15.5.1", | 15066 | "create-react-class": "^15.5.1", |
@@ -15167,7 +15175,7 @@ | |||
15167 | "read-package-json": { | 15175 | "read-package-json": { |
15168 | "version": "2.0.13", | 15176 | "version": "2.0.13", |
15169 | "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", | 15177 | "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", |
15170 | "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", | 15178 | "integrity": "sha1-LoLr2fYTuqbS6+Oqcs7+P2jkH0o=", |
15171 | "dev": true, | 15179 | "dev": true, |
15172 | "requires": { | 15180 | "requires": { |
15173 | "glob": "^7.1.1", | 15181 | "glob": "^7.1.1", |
@@ -15188,7 +15196,7 @@ | |||
15188 | "read-package-tree": { | 15196 | "read-package-tree": { |
15189 | "version": "5.2.1", | 15197 | "version": "5.2.1", |
15190 | "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", | 15198 | "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", |
15191 | "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", | 15199 | "integrity": "sha1-Yhixh9b6yCKJzkOHu7r47vU2rWM=", |
15192 | "dev": true, | 15200 | "dev": true, |
15193 | "requires": { | 15201 | "requires": { |
15194 | "debuglog": "^1.0.1", | 15202 | "debuglog": "^1.0.1", |
@@ -15556,7 +15564,7 @@ | |||
15556 | }, | 15564 | }, |
15557 | "htmlparser2": { | 15565 | "htmlparser2": { |
15558 | "version": "3.3.0", | 15566 | "version": "3.3.0", |
15559 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", | 15567 | "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", |
15560 | "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", | 15568 | "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", |
15561 | "dev": true, | 15569 | "dev": true, |
15562 | "requires": { | 15570 | "requires": { |
@@ -15574,7 +15582,7 @@ | |||
15574 | }, | 15582 | }, |
15575 | "readable-stream": { | 15583 | "readable-stream": { |
15576 | "version": "1.0.34", | 15584 | "version": "1.0.34", |
15577 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", | 15585 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", |
15578 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", | 15586 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", |
15579 | "dev": true, | 15587 | "dev": true, |
15580 | "requires": { | 15588 | "requires": { |
@@ -15586,7 +15594,7 @@ | |||
15586 | }, | 15594 | }, |
15587 | "string_decoder": { | 15595 | "string_decoder": { |
15588 | "version": "0.10.31", | 15596 | "version": "0.10.31", |
15589 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", | 15597 | "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", |
15590 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", | 15598 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", |
15591 | "dev": true | 15599 | "dev": true |
15592 | }, | 15600 | }, |
@@ -16209,7 +16217,7 @@ | |||
16209 | "dependencies": { | 16217 | "dependencies": { |
16210 | "debug": { | 16218 | "debug": { |
16211 | "version": "1.0.4", | 16219 | "version": "1.0.4", |
16212 | "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", | 16220 | "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", |
16213 | "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", | 16221 | "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", |
16214 | "dev": true, | 16222 | "dev": true, |
16215 | "requires": { | 16223 | "requires": { |
@@ -16224,7 +16232,7 @@ | |||
16224 | }, | 16232 | }, |
16225 | "ms": { | 16233 | "ms": { |
16226 | "version": "0.6.2", | 16234 | "version": "0.6.2", |
16227 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", | 16235 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz", |
16228 | "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", | 16236 | "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", |
16229 | "dev": true | 16237 | "dev": true |
16230 | } | 16238 | } |
@@ -16301,7 +16309,7 @@ | |||
16301 | }, | 16309 | }, |
16302 | "sha.js": { | 16310 | "sha.js": { |
16303 | "version": "2.4.11", | 16311 | "version": "2.4.11", |
16304 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", | 16312 | "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", |
16305 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", | 16313 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", |
16306 | "dev": true, | 16314 | "dev": true, |
16307 | "requires": { | 16315 | "requires": { |
@@ -16552,7 +16560,7 @@ | |||
16552 | "dependencies": { | 16560 | "dependencies": { |
16553 | "debug": { | 16561 | "debug": { |
16554 | "version": "2.3.3", | 16562 | "version": "2.3.3", |
16555 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", | 16563 | "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", |
16556 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", | 16564 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", |
16557 | "dev": true, | 16565 | "dev": true, |
16558 | "requires": { | 16566 | "requires": { |
@@ -16561,7 +16569,7 @@ | |||
16561 | }, | 16569 | }, |
16562 | "ms": { | 16570 | "ms": { |
16563 | "version": "0.7.2", | 16571 | "version": "0.7.2", |
16564 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", | 16572 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", |
16565 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", | 16573 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", |
16566 | "dev": true | 16574 | "dev": true |
16567 | }, | 16575 | }, |
@@ -16585,7 +16593,7 @@ | |||
16585 | "dependencies": { | 16593 | "dependencies": { |
16586 | "debug": { | 16594 | "debug": { |
16587 | "version": "2.3.3", | 16595 | "version": "2.3.3", |
16588 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", | 16596 | "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", |
16589 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", | 16597 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", |
16590 | "dev": true, | 16598 | "dev": true, |
16591 | "requires": { | 16599 | "requires": { |
@@ -16594,7 +16602,7 @@ | |||
16594 | }, | 16602 | }, |
16595 | "ms": { | 16603 | "ms": { |
16596 | "version": "0.7.2", | 16604 | "version": "0.7.2", |
16597 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", | 16605 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", |
16598 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", | 16606 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", |
16599 | "dev": true | 16607 | "dev": true |
16600 | } | 16608 | } |
@@ -16621,7 +16629,7 @@ | |||
16621 | "dependencies": { | 16629 | "dependencies": { |
16622 | "debug": { | 16630 | "debug": { |
16623 | "version": "2.3.3", | 16631 | "version": "2.3.3", |
16624 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", | 16632 | "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", |
16625 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", | 16633 | "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", |
16626 | "dev": true, | 16634 | "dev": true, |
16627 | "requires": { | 16635 | "requires": { |
@@ -16630,7 +16638,7 @@ | |||
16630 | }, | 16638 | }, |
16631 | "ms": { | 16639 | "ms": { |
16632 | "version": "0.7.2", | 16640 | "version": "0.7.2", |
16633 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", | 16641 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", |
16634 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", | 16642 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", |
16635 | "dev": true | 16643 | "dev": true |
16636 | } | 16644 | } |
@@ -16656,7 +16664,7 @@ | |||
16656 | }, | 16664 | }, |
16657 | "debug": { | 16665 | "debug": { |
16658 | "version": "2.2.0", | 16666 | "version": "2.2.0", |
16659 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", | 16667 | "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", |
16660 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", | 16668 | "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", |
16661 | "dev": true, | 16669 | "dev": true, |
16662 | "requires": { | 16670 | "requires": { |
@@ -16671,7 +16679,7 @@ | |||
16671 | }, | 16679 | }, |
16672 | "ms": { | 16680 | "ms": { |
16673 | "version": "0.7.1", | 16681 | "version": "0.7.1", |
16674 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", | 16682 | "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz", |
16675 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", | 16683 | "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", |
16676 | "dev": true | 16684 | "dev": true |
16677 | } | 16685 | } |
@@ -16747,7 +16755,7 @@ | |||
16747 | "socks-proxy-agent": { | 16755 | "socks-proxy-agent": { |
16748 | "version": "4.0.1", | 16756 | "version": "4.0.1", |
16749 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", | 16757 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", |
16750 | "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", | 16758 | "integrity": "sha1-WTa/i3B6mTB5xvN9sgkYIb/6ZHM=", |
16751 | "dev": true, | 16759 | "dev": true, |
16752 | "requires": { | 16760 | "requires": { |
16753 | "agent-base": "~4.2.0", | 16761 | "agent-base": "~4.2.0", |
@@ -16984,7 +16992,7 @@ | |||
16984 | "ssri": { | 16992 | "ssri": { |
16985 | "version": "6.0.1", | 16993 | "version": "6.0.1", |
16986 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", | 16994 | "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", |
16987 | "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", | 16995 | "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", |
16988 | "dev": true, | 16996 | "dev": true, |
16989 | "requires": { | 16997 | "requires": { |
16990 | "figgy-pudding": "^3.5.1" | 16998 | "figgy-pudding": "^3.5.1" |
@@ -17103,7 +17111,7 @@ | |||
17103 | "stream-each": { | 17111 | "stream-each": { |
17104 | "version": "1.2.3", | 17112 | "version": "1.2.3", |
17105 | "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", | 17113 | "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", |
17106 | "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", | 17114 | "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", |
17107 | "dev": true, | 17115 | "dev": true, |
17108 | "requires": { | 17116 | "requires": { |
17109 | "end-of-stream": "^1.1.0", | 17117 | "end-of-stream": "^1.1.0", |
@@ -17499,7 +17507,7 @@ | |||
17499 | }, | 17507 | }, |
17500 | "through": { | 17508 | "through": { |
17501 | "version": "2.3.8", | 17509 | "version": "2.3.8", |
17502 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", | 17510 | "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", |
17503 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", | 17511 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", |
17504 | "dev": true | 17512 | "dev": true |
17505 | }, | 17513 | }, |
@@ -17771,7 +17779,7 @@ | |||
17771 | "tslint": { | 17779 | "tslint": { |
17772 | "version": "5.12.0", | 17780 | "version": "5.12.0", |
17773 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", | 17781 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", |
17774 | "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==", | 17782 | "integrity": "sha1-R/LbopHtPVgHUtEJhm+2QHaPyjY=", |
17775 | "dev": true, | 17783 | "dev": true, |
17776 | "requires": { | 17784 | "requires": { |
17777 | "babel-code-frame": "^6.22.0", | 17785 | "babel-code-frame": "^6.22.0", |
@@ -17791,7 +17799,7 @@ | |||
17791 | "tslint-config-airbnb": { | 17799 | "tslint-config-airbnb": { |
17792 | "version": "5.11.1", | 17800 | "version": "5.11.1", |
17793 | "resolved": "https://registry.npmjs.org/tslint-config-airbnb/-/tslint-config-airbnb-5.11.1.tgz", | 17801 | "resolved": "https://registry.npmjs.org/tslint-config-airbnb/-/tslint-config-airbnb-5.11.1.tgz", |
17794 | "integrity": "sha512-hkaittm2607vVMe8eotANGN1CimD5tor7uoY3ypg2VTtEcDB/KGWYbJOz58t8LI4cWSyWtgqYQ5F0HwKxxhlkQ==", | 17802 | "integrity": "sha1-UaJ/u4vyTBRNBkonSnHaR+fs5hc=", |
17795 | "dev": true, | 17803 | "dev": true, |
17796 | "requires": { | 17804 | "requires": { |
17797 | "tslint-consistent-codestyle": "^1.14.1", | 17805 | "tslint-consistent-codestyle": "^1.14.1", |
@@ -17813,7 +17821,7 @@ | |||
17813 | "tslint-eslint-rules": { | 17821 | "tslint-eslint-rules": { |
17814 | "version": "5.4.0", | 17822 | "version": "5.4.0", |
17815 | "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", | 17823 | "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", |
17816 | "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", | 17824 | "integrity": "sha1-5IjMkYG/GT/lzXv8ohOnaV8XN7U=", |
17817 | "dev": true, | 17825 | "dev": true, |
17818 | "requires": { | 17826 | "requires": { |
17819 | "doctrine": "0.7.2", | 17827 | "doctrine": "0.7.2", |
@@ -17823,7 +17831,7 @@ | |||
17823 | "dependencies": { | 17831 | "dependencies": { |
17824 | "doctrine": { | 17832 | "doctrine": { |
17825 | "version": "0.7.2", | 17833 | "version": "0.7.2", |
17826 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", | 17834 | "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", |
17827 | "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", | 17835 | "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", |
17828 | "dev": true, | 17836 | "dev": true, |
17829 | "requires": { | 17837 | "requires": { |
@@ -17846,7 +17854,7 @@ | |||
17846 | "tslib": { | 17854 | "tslib": { |
17847 | "version": "1.9.0", | 17855 | "version": "1.9.0", |
17848 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", | 17856 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", |
17849 | "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", | 17857 | "integrity": "sha1-43qG/ajLuvI6BX9HPJ9Nxk5fwug=", |
17850 | "dev": true | 17858 | "dev": true |
17851 | }, | 17859 | }, |
17852 | "tsutils": { | 17860 | "tsutils": { |
@@ -17863,7 +17871,7 @@ | |||
17863 | "tslint-microsoft-contrib": { | 17871 | "tslint-microsoft-contrib": { |
17864 | "version": "5.2.1", | 17872 | "version": "5.2.1", |
17865 | "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz", | 17873 | "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz", |
17866 | "integrity": "sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA==", | 17874 | "integrity": "sha1-pihoOfgA4lkdBB6igAx3SHhErYE=", |
17867 | "dev": true, | 17875 | "dev": true, |
17868 | "requires": { | 17876 | "requires": { |
17869 | "tsutils": "^2.27.2 <2.29.0" | 17877 | "tsutils": "^2.27.2 <2.29.0" |
@@ -17872,7 +17880,7 @@ | |||
17872 | "tsutils": { | 17880 | "tsutils": { |
17873 | "version": "2.28.0", | 17881 | "version": "2.28.0", |
17874 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", | 17882 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", |
17875 | "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", | 17883 | "integrity": "sha1-a9ceFggo+dAZtvToRHQiKPhRaaE=", |
17876 | "dev": true, | 17884 | "dev": true, |
17877 | "requires": { | 17885 | "requires": { |
17878 | "tslib": "^1.8.1" | 17886 | "tslib": "^1.8.1" |
@@ -17883,7 +17891,7 @@ | |||
17883 | "tsutils": { | 17891 | "tsutils": { |
17884 | "version": "2.29.0", | 17892 | "version": "2.29.0", |
17885 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", | 17893 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", |
17886 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", | 17894 | "integrity": "sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=", |
17887 | "dev": true, | 17895 | "dev": true, |
17888 | "requires": { | 17896 | "requires": { |
17889 | "tslib": "^1.8.1" | 17897 | "tslib": "^1.8.1" |
@@ -17891,7 +17899,7 @@ | |||
17891 | }, | 17899 | }, |
17892 | "tty-browserify": { | 17900 | "tty-browserify": { |
17893 | "version": "0.0.0", | 17901 | "version": "0.0.0", |
17894 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", | 17902 | "resolved": "http://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", |
17895 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", | 17903 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", |
17896 | "dev": true | 17904 | "dev": true |
17897 | }, | 17905 | }, |
@@ -17938,7 +17946,7 @@ | |||
17938 | "typescript": { | 17946 | "typescript": { |
17939 | "version": "3.2.2", | 17947 | "version": "3.2.2", |
17940 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz", | 17948 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz", |
17941 | "integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==", | 17949 | "integrity": "sha1-/oEBxGqhI/g1NSPr3PVzDCrkk+U=", |
17942 | "dev": true | 17950 | "dev": true |
17943 | }, | 17951 | }, |
17944 | "ua-parser-js": { | 17952 | "ua-parser-js": { |
@@ -18077,7 +18085,7 @@ | |||
18077 | "unique-filename": { | 18085 | "unique-filename": { |
18078 | "version": "1.1.1", | 18086 | "version": "1.1.1", |
18079 | "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", | 18087 | "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", |
18080 | "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", | 18088 | "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", |
18081 | "dev": true, | 18089 | "dev": true, |
18082 | "requires": { | 18090 | "requires": { |
18083 | "unique-slug": "^2.0.0" | 18091 | "unique-slug": "^2.0.0" |
@@ -18086,7 +18094,7 @@ | |||
18086 | "unique-slug": { | 18094 | "unique-slug": { |
18087 | "version": "2.0.1", | 18095 | "version": "2.0.1", |
18088 | "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", | 18096 | "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", |
18089 | "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", | 18097 | "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", |
18090 | "dev": true, | 18098 | "dev": true, |
18091 | "requires": { | 18099 | "requires": { |
18092 | "imurmurhash": "^0.1.4" | 18100 | "imurmurhash": "^0.1.4" |
@@ -18531,7 +18539,7 @@ | |||
18531 | }, | 18539 | }, |
18532 | "vm-browserify": { | 18540 | "vm-browserify": { |
18533 | "version": "0.0.4", | 18541 | "version": "0.0.4", |
18534 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", | 18542 | "resolved": "http://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", |
18535 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", | 18543 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", |
18536 | "dev": true, | 18544 | "dev": true, |
18537 | "requires": { | 18545 | "requires": { |
@@ -18636,7 +18644,7 @@ | |||
18636 | "webidl-conversions": { | 18644 | "webidl-conversions": { |
18637 | "version": "4.0.2", | 18645 | "version": "4.0.2", |
18638 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", | 18646 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", |
18639 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", | 18647 | "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=", |
18640 | "dev": true | 18648 | "dev": true |
18641 | }, | 18649 | }, |
18642 | "webpack": { | 18650 | "webpack": { |
@@ -19127,7 +19135,7 @@ | |||
19127 | }, | 19135 | }, |
19128 | "wrap-ansi": { | 19136 | "wrap-ansi": { |
19129 | "version": "2.1.0", | 19137 | "version": "2.1.0", |
19130 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", | 19138 | "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", |
19131 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", | 19139 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", |
19132 | "dev": true, | 19140 | "dev": true, |
19133 | "requires": { | 19141 | "requires": { |
@@ -19235,7 +19243,7 @@ | |||
19235 | "write-pkg": { | 19243 | "write-pkg": { |
19236 | "version": "3.2.0", | 19244 | "version": "3.2.0", |
19237 | "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", | 19245 | "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", |
19238 | "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", | 19246 | "integrity": "sha1-DheP6Xgg04mokovHlTXb5ows/yE=", |
19239 | "dev": true, | 19247 | "dev": true, |
19240 | "requires": { | 19248 | "requires": { |
19241 | "sort-keys": "^2.0.0", | 19249 | "sort-keys": "^2.0.0", |
@@ -19277,7 +19285,7 @@ | |||
19277 | }, | 19285 | }, |
19278 | "xmlbuilder": { | 19286 | "xmlbuilder": { |
19279 | "version": "9.0.7", | 19287 | "version": "9.0.7", |
19280 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", | 19288 | "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", |
19281 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", | 19289 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", |
19282 | "dev": true | 19290 | "dev": true |
19283 | }, | 19291 | }, |
diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index 478738cad..cc3709b1a 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx | |||
@@ -25,6 +25,7 @@ interface IProps extends React.InputHTMLAttributes<HTMLInputElement>, IFormField | |||
25 | showPasswordToggle?: boolean; | 25 | showPasswordToggle?: boolean; |
26 | data: IData; | 26 | data: IData; |
27 | inputClassName?: string; | 27 | inputClassName?: string; |
28 | onEnterKey?: Function; | ||
28 | } | 29 | } |
29 | 30 | ||
30 | interface IState { | 31 | interface IState { |
@@ -81,6 +82,13 @@ class InputComponent extends Component<IProps, IState> { | |||
81 | } | 82 | } |
82 | } | 83 | } |
83 | 84 | ||
85 | onInputKeyPress(e: React.KeyboardEvent) { | ||
86 | if (e.key === "Enter") { | ||
87 | const { onEnterKey } = this.props; | ||
88 | onEnterKey && onEnterKey(); | ||
89 | } | ||
90 | } | ||
91 | |||
84 | render() { | 92 | render() { |
85 | const { | 93 | const { |
86 | classes, | 94 | classes, |
@@ -101,6 +109,7 @@ class InputComponent extends Component<IProps, IState> { | |||
101 | placeholder, | 109 | placeholder, |
102 | spellCheck, | 110 | spellCheck, |
103 | onBlur, | 111 | onBlur, |
112 | onEnterKey, | ||
104 | onFocus, | 113 | onFocus, |
105 | } = this.props; | 114 | } = this.props; |
106 | 115 | ||
@@ -147,6 +156,7 @@ class InputComponent extends Component<IProps, IState> { | |||
147 | onFocus={onFocus} | 156 | onFocus={onFocus} |
148 | onBlur={onBlur} | 157 | onBlur={onBlur} |
149 | disabled={disabled} | 158 | disabled={disabled} |
159 | onKeyPress={this.onInputKeyPress.bind(this)} | ||
150 | /> | 160 | /> |
151 | {suffix && ( | 161 | {suffix && ( |
152 | <span className={classes.suffix}> | 162 | <span className={classes.suffix}> |
diff --git a/src/actions/index.js b/src/actions/index.js index 59acabb0b..00f843cd6 100644 --- a/src/actions/index.js +++ b/src/actions/index.js | |||
@@ -11,6 +11,7 @@ import payment from './payment'; | |||
11 | import news from './news'; | 11 | import news from './news'; |
12 | import settings from './settings'; | 12 | import settings from './settings'; |
13 | import requests from './requests'; | 13 | import requests from './requests'; |
14 | import workspaces from '../features/workspaces/actions'; | ||
14 | 15 | ||
15 | const actions = Object.assign({}, { | 16 | const actions = Object.assign({}, { |
16 | service, | 17 | service, |
@@ -25,4 +26,7 @@ const actions = Object.assign({}, { | |||
25 | requests, | 26 | requests, |
26 | }); | 27 | }); |
27 | 28 | ||
28 | export default defineActions(actions, PropTypes.checkPropTypes); | 29 | export default Object.assign( |
30 | defineActions(actions, PropTypes.checkPropTypes), | ||
31 | { workspaces }, | ||
32 | ); | ||
diff --git a/src/actions/lib/actions.js b/src/actions/lib/actions.js index 499018d70..6571e9441 100644 --- a/src/actions/lib/actions.js +++ b/src/actions/lib/actions.js | |||
@@ -1,18 +1,23 @@ | |||
1 | export const createActionsFromDefinitions = (actionDefinitions, validate) => { | ||
2 | const actions = {}; | ||
3 | Object.keys(actionDefinitions).forEach((actionName) => { | ||
4 | const action = (params) => { | ||
5 | const schema = actionDefinitions[actionName]; | ||
6 | validate(schema, params, actionName); | ||
7 | action.notify(params); | ||
8 | }; | ||
9 | actions[actionName] = action; | ||
10 | action.listeners = []; | ||
11 | action.listen = listener => action.listeners.push(listener); | ||
12 | action.notify = params => action.listeners.forEach(listener => listener(params)); | ||
13 | }); | ||
14 | return actions; | ||
15 | }; | ||
16 | |||
1 | export default (definitions, validate) => { | 17 | export default (definitions, validate) => { |
2 | const newActions = {}; | 18 | const newActions = {}; |
3 | Object.keys(definitions).forEach((scopeName) => { | 19 | Object.keys(definitions).forEach((scopeName) => { |
4 | newActions[scopeName] = {}; | 20 | newActions[scopeName] = createActionsFromDefinitions(definitions[scopeName], validate); |
5 | Object.keys(definitions[scopeName]).forEach((actionName) => { | ||
6 | const action = (params) => { | ||
7 | const schema = definitions[scopeName][actionName]; | ||
8 | validate(schema, params, actionName); | ||
9 | action.notify(params); | ||
10 | }; | ||
11 | newActions[scopeName][actionName] = action; | ||
12 | action.listeners = []; | ||
13 | action.listen = listener => action.listeners.push(listener); | ||
14 | action.notify = params => action.listeners.forEach(listener => listener(params)); | ||
15 | }); | ||
16 | }); | 21 | }); |
17 | return newActions; | 22 | return newActions; |
18 | }; | 23 | }; |
diff --git a/src/api/utils/auth.js b/src/api/utils/auth.js new file mode 100644 index 000000000..d469853a5 --- /dev/null +++ b/src/api/utils/auth.js | |||
@@ -0,0 +1,28 @@ | |||
1 | import { remote } from 'electron'; | ||
2 | import localStorage from 'mobx-localstorage'; | ||
3 | |||
4 | const { app } = remote; | ||
5 | |||
6 | export const prepareAuthRequest = (options, auth = true) => { | ||
7 | const request = Object.assign(options, { | ||
8 | mode: 'cors', | ||
9 | headers: Object.assign({ | ||
10 | 'Content-Type': 'application/json', | ||
11 | 'X-Franz-Source': 'desktop', | ||
12 | 'X-Franz-Version': app.getVersion(), | ||
13 | 'X-Franz-platform': process.platform, | ||
14 | 'X-Franz-Timezone-Offset': new Date().getTimezoneOffset(), | ||
15 | 'X-Franz-System-Locale': app.getLocale(), | ||
16 | }, options.headers), | ||
17 | }); | ||
18 | |||
19 | if (auth) { | ||
20 | request.headers.Authorization = `Bearer ${localStorage.getItem('authToken')}`; | ||
21 | } | ||
22 | |||
23 | return request; | ||
24 | }; | ||
25 | |||
26 | export const sendAuthRequest = (url, options) => ( | ||
27 | window.fetch(url, prepareAuthRequest(options)) | ||
28 | ); | ||
diff --git a/src/app.js b/src/app.js index 6660feb46..d3b540f62 100644 --- a/src/app.js +++ b/src/app.js | |||
@@ -39,6 +39,8 @@ import PricingScreen from './containers/auth/PricingScreen'; | |||
39 | import InviteScreen from './containers/auth/InviteScreen'; | 39 | import InviteScreen from './containers/auth/InviteScreen'; |
40 | import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; | 40 | import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; |
41 | import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; | 41 | import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; |
42 | import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen'; | ||
43 | import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen'; | ||
42 | 44 | ||
43 | // Add Polyfills | 45 | // Add Polyfills |
44 | smoothScroll.polyfill(); | 46 | smoothScroll.polyfill(); |
@@ -75,6 +77,8 @@ window.addEventListener('load', () => { | |||
75 | <Route path="/settings/recipes/:filter" component={RecipesScreen} /> | 77 | <Route path="/settings/recipes/:filter" component={RecipesScreen} /> |
76 | <Route path="/settings/services" component={ServicesScreen} /> | 78 | <Route path="/settings/services" component={ServicesScreen} /> |
77 | <Route path="/settings/services/:action/:id" component={EditServiceScreen} /> | 79 | <Route path="/settings/services/:action/:id" component={EditServiceScreen} /> |
80 | <Route path="/settings/workspaces" component={WorkspacesScreen} /> | ||
81 | <Route path="/settings/workspaces/:action/:id" component={EditWorkspaceScreen} /> | ||
78 | <Route path="/settings/user" component={AccountScreen} /> | 82 | <Route path="/settings/user" component={AccountScreen} /> |
79 | <Route path="/settings/user/edit" component={EditUserScreen} /> | 83 | <Route path="/settings/user/edit" component={EditUserScreen} /> |
80 | <Route path="/settings/app" component={EditSettingsScreen} /> | 84 | <Route path="/settings/app" component={EditSettingsScreen} /> |
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index 609a3b604..fcc5b0001 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js | |||
@@ -31,7 +31,7 @@ export default @observer class Sidebar extends Component { | |||
31 | openSettings: PropTypes.func.isRequired, | 31 | openSettings: PropTypes.func.isRequired, |
32 | toggleMuteApp: PropTypes.func.isRequired, | 32 | toggleMuteApp: PropTypes.func.isRequired, |
33 | isAppMuted: PropTypes.bool.isRequired, | 33 | isAppMuted: PropTypes.bool.isRequired, |
34 | } | 34 | }; |
35 | 35 | ||
36 | static contextTypes = { | 36 | static contextTypes = { |
37 | intl: intlShape, | 37 | intl: intlShape, |
diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js index dd5c2140f..5e8260ad0 100644 --- a/src/components/services/tabs/Tabbar.js +++ b/src/components/services/tabs/Tabbar.js | |||
@@ -19,7 +19,7 @@ export default @observer class TabBar extends Component { | |||
19 | updateService: PropTypes.func.isRequired, | 19 | updateService: PropTypes.func.isRequired, |
20 | showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, | 20 | showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, |
21 | showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, | 21 | showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, |
22 | } | 22 | }; |
23 | 23 | ||
24 | onSortEnd = ({ oldIndex, newIndex }) => { | 24 | onSortEnd = ({ oldIndex, newIndex }) => { |
25 | const { | 25 | const { |
@@ -45,7 +45,7 @@ export default @observer class TabBar extends Component { | |||
45 | redirect: false, | 45 | redirect: false, |
46 | }); | 46 | }); |
47 | } | 47 | } |
48 | } | 48 | }; |
49 | 49 | ||
50 | disableService({ serviceId }) { | 50 | disableService({ serviceId }) { |
51 | this.toggleService({ serviceId, isEnabled: false }); | 51 | this.toggleService({ serviceId, isEnabled: false }); |
diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js index 953f702f8..4a80bb126 100644 --- a/src/components/settings/navigation/SettingsNavigation.js +++ b/src/components/settings/navigation/SettingsNavigation.js | |||
@@ -14,6 +14,10 @@ const messages = defineMessages({ | |||
14 | id: 'settings.navigation.yourServices', | 14 | id: 'settings.navigation.yourServices', |
15 | defaultMessage: '!!!Your services', | 15 | defaultMessage: '!!!Your services', |
16 | }, | 16 | }, |
17 | yourWorkspaces: { | ||
18 | id: 'settings.navigation.yourWorkspaces', | ||
19 | defaultMessage: '!!!Your workspaces', | ||
20 | }, | ||
17 | account: { | 21 | account: { |
18 | id: 'settings.navigation.account', | 22 | id: 'settings.navigation.account', |
19 | defaultMessage: '!!!Account', | 23 | defaultMessage: '!!!Account', |
@@ -64,6 +68,14 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp | |||
64 | <span className="badge">{serviceCount}</span> | 68 | <span className="badge">{serviceCount}</span> |
65 | </Link> | 69 | </Link> |
66 | <Link | 70 | <Link |
71 | to="/settings/workspaces" | ||
72 | className="settings-navigation__link" | ||
73 | activeClassName="is-active" | ||
74 | > | ||
75 | {intl.formatMessage(messages.yourWorkspaces)} | ||
76 | {' '} | ||
77 | </Link> | ||
78 | <Link | ||
67 | to="/settings/user" | 79 | to="/settings/user" |
68 | className="settings-navigation__link" | 80 | className="settings-navigation__link" |
69 | activeClassName="is-active" | 81 | activeClassName="is-active" |
diff --git a/src/config.js b/src/config.js index 479572edb..d619a7492 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -41,6 +41,8 @@ export const DEFAULT_FEATURES_CONFIG = { | |||
41 | }, | 41 | }, |
42 | isServiceProxyEnabled: false, | 42 | isServiceProxyEnabled: false, |
43 | isServiceProxyPremiumFeature: true, | 43 | isServiceProxyPremiumFeature: true, |
44 | isWorkspacePremiumFeature: true, | ||
45 | isWorkspaceEnabled: true, | ||
44 | }; | 46 | }; |
45 | 47 | ||
46 | export const DEFAULT_WINDOW_OPTIONS = { | 48 | export const DEFAULT_WINDOW_OPTIONS = { |
diff --git a/src/environment.js b/src/environment.js index 73b1c7ab2..d67fd6adb 100644 --- a/src/environment.js +++ b/src/environment.js | |||
@@ -28,3 +28,4 @@ if (!isDevMode || (isDevMode && useLiveAPI)) { | |||
28 | } | 28 | } |
29 | 29 | ||
30 | export const API = api; | 30 | export const API = api; |
31 | export const API_VERSION = 'v1'; | ||
diff --git a/src/features/delayApp/Component.js b/src/features/delayApp/Component.js index ff84510e8..ff0f1f2f8 100644 --- a/src/features/delayApp/Component.js +++ b/src/features/delayApp/Component.js | |||
@@ -38,7 +38,7 @@ export default @inject('actions') @injectSheet(styles) @observer class DelayApp | |||
38 | 38 | ||
39 | state = { | 39 | state = { |
40 | countdown: config.delayDuration, | 40 | countdown: config.delayDuration, |
41 | } | 41 | }; |
42 | 42 | ||
43 | countdownInterval = null; | 43 | countdownInterval = null; |
44 | 44 | ||
diff --git a/src/features/workspaces/actions.js b/src/features/workspaces/actions.js new file mode 100644 index 000000000..25246de09 --- /dev/null +++ b/src/features/workspaces/actions.js | |||
@@ -0,0 +1,22 @@ | |||
1 | import PropTypes from 'prop-types'; | ||
2 | import Workspace from './models/Workspace'; | ||
3 | import { createActionsFromDefinitions } from '../../actions/lib/actions'; | ||
4 | |||
5 | export default createActionsFromDefinitions({ | ||
6 | edit: { | ||
7 | workspace: PropTypes.instanceOf(Workspace).isRequired, | ||
8 | }, | ||
9 | create: { | ||
10 | name: PropTypes.string.isRequired, | ||
11 | }, | ||
12 | delete: { | ||
13 | workspace: PropTypes.instanceOf(Workspace).isRequired, | ||
14 | }, | ||
15 | update: { | ||
16 | workspace: PropTypes.instanceOf(Workspace).isRequired, | ||
17 | }, | ||
18 | activate: { | ||
19 | workspace: PropTypes.instanceOf(Workspace).isRequired, | ||
20 | }, | ||
21 | deactivate: {}, | ||
22 | }, PropTypes.checkPropTypes); | ||
diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js new file mode 100644 index 000000000..733cb5593 --- /dev/null +++ b/src/features/workspaces/api.js | |||
@@ -0,0 +1,39 @@ | |||
1 | import { pick } from 'lodash'; | ||
2 | import { sendAuthRequest } from '../../api/utils/auth'; | ||
3 | import { API, API_VERSION } from '../../environment'; | ||
4 | |||
5 | export default { | ||
6 | getUserWorkspaces: async () => { | ||
7 | const url = `${API}/${API_VERSION}/workspace`; | ||
8 | const request = await sendAuthRequest(url, { method: 'GET' }); | ||
9 | if (!request.ok) throw request; | ||
10 | return request.json(); | ||
11 | }, | ||
12 | |||
13 | createWorkspace: async (name) => { | ||
14 | const url = `${API}/${API_VERSION}/workspace`; | ||
15 | const request = await sendAuthRequest(url, { | ||
16 | method: 'POST', | ||
17 | body: JSON.stringify({ name }), | ||
18 | }); | ||
19 | if (!request.ok) throw request; | ||
20 | return request.json(); | ||
21 | }, | ||
22 | |||
23 | deleteWorkspace: async (workspace) => { | ||
24 | const url = `${API}/${API_VERSION}/workspace/${workspace.id}`; | ||
25 | const request = await sendAuthRequest(url, { method: 'DELETE' }); | ||
26 | if (!request.ok) throw request; | ||
27 | return request.json(); | ||
28 | }, | ||
29 | |||
30 | updateWorkspace: async (workspace) => { | ||
31 | const url = `${API}/${API_VERSION}/workspace/${workspace.id}`; | ||
32 | const request = await sendAuthRequest(url, { | ||
33 | method: 'PUT', | ||
34 | body: JSON.stringify(pick(workspace, ['name', 'services'])), | ||
35 | }); | ||
36 | if (!request.ok) throw request; | ||
37 | return request.json(); | ||
38 | }, | ||
39 | }; | ||
diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js new file mode 100644 index 000000000..83f6e07f7 --- /dev/null +++ b/src/features/workspaces/components/CreateWorkspaceForm.js | |||
@@ -0,0 +1,93 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer } from 'mobx-react'; | ||
4 | import { defineMessages, intlShape } from 'react-intl'; | ||
5 | import { Input, Button } from '@meetfranz/forms'; | ||
6 | import injectSheet from 'react-jss'; | ||
7 | import Form from '../../../lib/Form'; | ||
8 | import { required } from '../../../helpers/validation-helpers'; | ||
9 | |||
10 | const messages = defineMessages({ | ||
11 | submitButton: { | ||
12 | id: 'settings.workspace.add.form.submitButton', | ||
13 | defaultMessage: '!!!Save workspace', | ||
14 | }, | ||
15 | name: { | ||
16 | id: 'settings.workspace.add.form.name', | ||
17 | defaultMessage: '!!!Name', | ||
18 | }, | ||
19 | }); | ||
20 | |||
21 | const styles = () => ({ | ||
22 | form: { | ||
23 | display: 'flex', | ||
24 | }, | ||
25 | input: { | ||
26 | flexGrow: 1, | ||
27 | marginRight: '10px', | ||
28 | }, | ||
29 | submitButton: { | ||
30 | height: 'inherit', | ||
31 | marginTop: '3px', | ||
32 | }, | ||
33 | }); | ||
34 | |||
35 | @injectSheet(styles) @observer | ||
36 | class CreateWorkspaceForm extends Component { | ||
37 | static contextTypes = { | ||
38 | intl: intlShape, | ||
39 | }; | ||
40 | |||
41 | static propTypes = { | ||
42 | classes: PropTypes.object.isRequired, | ||
43 | onSubmit: PropTypes.func.isRequired, | ||
44 | }; | ||
45 | |||
46 | form = (() => { | ||
47 | const { intl } = this.context; | ||
48 | return new Form({ | ||
49 | fields: { | ||
50 | name: { | ||
51 | label: intl.formatMessage(messages.name), | ||
52 | placeholder: intl.formatMessage(messages.name), | ||
53 | value: '', | ||
54 | validators: [required], | ||
55 | }, | ||
56 | }, | ||
57 | }); | ||
58 | })(); | ||
59 | |||
60 | submitForm() { | ||
61 | const { form } = this; | ||
62 | form.submit({ | ||
63 | onSuccess: async (f) => { | ||
64 | const { onSubmit } = this.props; | ||
65 | onSubmit(f.values()); | ||
66 | }, | ||
67 | }); | ||
68 | } | ||
69 | |||
70 | render() { | ||
71 | const { intl } = this.context; | ||
72 | const { classes } = this.props; | ||
73 | const { form } = this; | ||
74 | return ( | ||
75 | <div className={classes.form}> | ||
76 | <Input | ||
77 | className={classes.input} | ||
78 | {...form.$('name').bind()} | ||
79 | showLabel={false} | ||
80 | onEnterKey={this.submitForm.bind(this, form)} | ||
81 | /> | ||
82 | <Button | ||
83 | className={classes.submitButton} | ||
84 | type="submit" | ||
85 | label={intl.formatMessage(messages.submitButton)} | ||
86 | onClick={this.submitForm.bind(this, form)} | ||
87 | /> | ||
88 | </div> | ||
89 | ); | ||
90 | } | ||
91 | } | ||
92 | |||
93 | export default CreateWorkspaceForm; | ||
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js new file mode 100644 index 000000000..48090f608 --- /dev/null +++ b/src/features/workspaces/components/EditWorkspaceForm.js | |||
@@ -0,0 +1,192 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer } from 'mobx-react'; | ||
4 | import { defineMessages, intlShape } from 'react-intl'; | ||
5 | import { Link } from 'react-router'; | ||
6 | import { Input, Button } from '@meetfranz/forms'; | ||
7 | import injectSheet from 'react-jss'; | ||
8 | |||
9 | import Workspace from '../models/Workspace'; | ||
10 | import Service from '../../../models/Service'; | ||
11 | import Form from '../../../lib/Form'; | ||
12 | import { required } from '../../../helpers/validation-helpers'; | ||
13 | import ServiceListItem from './ServiceListItem'; | ||
14 | |||
15 | const messages = defineMessages({ | ||
16 | buttonDelete: { | ||
17 | id: 'settings.workspace.form.buttonDelete', | ||
18 | defaultMessage: '!!!Delete workspace', | ||
19 | }, | ||
20 | buttonSave: { | ||
21 | id: 'settings.workspace.form.buttonSave', | ||
22 | defaultMessage: '!!!Save workspace', | ||
23 | }, | ||
24 | name: { | ||
25 | id: 'settings.workspace.form.name', | ||
26 | defaultMessage: '!!!Name', | ||
27 | }, | ||
28 | yourWorkspaces: { | ||
29 | id: 'settings.workspace.form.yourWorkspaces', | ||
30 | defaultMessage: '!!!Your workspaces', | ||
31 | }, | ||
32 | servicesInWorkspaceHeadline: { | ||
33 | id: 'settings.workspace.form.servicesInWorkspaceHeadline', | ||
34 | defaultMessage: '!!!Services in this Workspace', | ||
35 | }, | ||
36 | }); | ||
37 | |||
38 | const styles = () => ({ | ||
39 | nameInput: { | ||
40 | height: 'auto', | ||
41 | }, | ||
42 | serviceList: { | ||
43 | height: 'auto', | ||
44 | }, | ||
45 | }); | ||
46 | |||
47 | @injectSheet(styles) @observer | ||
48 | class EditWorkspaceForm extends Component { | ||
49 | static contextTypes = { | ||
50 | intl: intlShape, | ||
51 | }; | ||
52 | |||
53 | static propTypes = { | ||
54 | classes: PropTypes.object.isRequired, | ||
55 | isDeleting: PropTypes.bool.isRequired, | ||
56 | isSaving: PropTypes.bool.isRequired, | ||
57 | onDelete: PropTypes.func.isRequired, | ||
58 | onSave: PropTypes.func.isRequired, | ||
59 | services: PropTypes.arrayOf(PropTypes.instanceOf(Service)).isRequired, | ||
60 | workspace: PropTypes.instanceOf(Workspace).isRequired, | ||
61 | }; | ||
62 | |||
63 | form = this.prepareWorkspaceForm(this.props.workspace); | ||
64 | |||
65 | componentWillReceiveProps(nextProps) { | ||
66 | const { workspace } = this.props; | ||
67 | if (workspace.id !== nextProps.workspace.id) { | ||
68 | this.form = this.prepareWorkspaceForm(nextProps.workspace); | ||
69 | } | ||
70 | } | ||
71 | |||
72 | prepareWorkspaceForm(workspace) { | ||
73 | const { intl } = this.context; | ||
74 | return new Form({ | ||
75 | fields: { | ||
76 | name: { | ||
77 | label: intl.formatMessage(messages.name), | ||
78 | placeholder: intl.formatMessage(messages.name), | ||
79 | value: workspace.name, | ||
80 | validators: [required], | ||
81 | }, | ||
82 | services: { | ||
83 | value: workspace.services.slice(), | ||
84 | }, | ||
85 | }, | ||
86 | }); | ||
87 | } | ||
88 | |||
89 | submitForm(form) { | ||
90 | form.submit({ | ||
91 | onSuccess: async (f) => { | ||
92 | const { onSave } = this.props; | ||
93 | const values = f.values(); | ||
94 | onSave(values); | ||
95 | }, | ||
96 | onError: async () => {}, | ||
97 | }); | ||
98 | } | ||
99 | |||
100 | toggleService(service) { | ||
101 | const servicesField = this.form.$('services'); | ||
102 | const serviceIds = servicesField.value; | ||
103 | if (serviceIds.includes(service.id)) { | ||
104 | serviceIds.splice(serviceIds.indexOf(service.id), 1); | ||
105 | } else { | ||
106 | serviceIds.push(service.id); | ||
107 | } | ||
108 | servicesField.set(serviceIds); | ||
109 | } | ||
110 | |||
111 | render() { | ||
112 | const { intl } = this.context; | ||
113 | const { | ||
114 | classes, | ||
115 | isDeleting, | ||
116 | isSaving, | ||
117 | onDelete, | ||
118 | workspace, | ||
119 | services, | ||
120 | } = this.props; | ||
121 | const { form } = this; | ||
122 | const workspaceServices = form.$('services').value; | ||
123 | return ( | ||
124 | <div className="settings__main"> | ||
125 | <div className="settings__header"> | ||
126 | <span className="settings__header-item"> | ||
127 | <Link to="/settings/workspaces"> | ||
128 | {intl.formatMessage(messages.yourWorkspaces)} | ||
129 | </Link> | ||
130 | </span> | ||
131 | <span className="separator" /> | ||
132 | <span className="settings__header-item"> | ||
133 | {workspace.name} | ||
134 | </span> | ||
135 | </div> | ||
136 | <div className="settings__body"> | ||
137 | <div className={classes.nameInput}> | ||
138 | <Input {...form.$('name').bind()} /> | ||
139 | </div> | ||
140 | <h2>{intl.formatMessage(messages.servicesInWorkspaceHeadline)}</h2> | ||
141 | <div className={classes.serviceList}> | ||
142 | {services.map(s => ( | ||
143 | <ServiceListItem | ||
144 | key={s.id} | ||
145 | service={s} | ||
146 | isInWorkspace={workspaceServices.includes(s.id)} | ||
147 | onToggle={() => this.toggleService(s)} | ||
148 | /> | ||
149 | ))} | ||
150 | </div> | ||
151 | </div> | ||
152 | <div className="settings__controls"> | ||
153 | {/* ===== Delete Button ===== */} | ||
154 | {isDeleting ? ( | ||
155 | <Button | ||
156 | label={intl.formatMessage(messages.buttonDelete)} | ||
157 | loaded={false} | ||
158 | buttonType="secondary" | ||
159 | className="settings__delete-button" | ||
160 | disabled | ||
161 | /> | ||
162 | ) : ( | ||
163 | <Button | ||
164 | buttonType="danger" | ||
165 | label={intl.formatMessage(messages.buttonDelete)} | ||
166 | className="settings__delete-button" | ||
167 | onClick={onDelete} | ||
168 | /> | ||
169 | )} | ||
170 | {/* ===== Save Button ===== */} | ||
171 | {isSaving ? ( | ||
172 | <Button | ||
173 | type="submit" | ||
174 | label={intl.formatMessage(messages.buttonSave)} | ||
175 | loaded={!isSaving} | ||
176 | buttonType="secondary" | ||
177 | disabled | ||
178 | /> | ||
179 | ) : ( | ||
180 | <Button | ||
181 | type="submit" | ||
182 | label={intl.formatMessage(messages.buttonSave)} | ||
183 | onClick={this.submitForm.bind(this, form)} | ||
184 | /> | ||
185 | )} | ||
186 | </div> | ||
187 | </div> | ||
188 | ); | ||
189 | } | ||
190 | } | ||
191 | |||
192 | export default EditWorkspaceForm; | ||
diff --git a/src/features/workspaces/components/ServiceListItem.js b/src/features/workspaces/components/ServiceListItem.js new file mode 100644 index 000000000..146cc5a36 --- /dev/null +++ b/src/features/workspaces/components/ServiceListItem.js | |||
@@ -0,0 +1,48 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer } from 'mobx-react'; | ||
4 | import injectSheet from 'react-jss'; | ||
5 | import { Toggle } from '@meetfranz/forms'; | ||
6 | |||
7 | import Service from '../../../models/Service'; | ||
8 | |||
9 | const styles = () => ({ | ||
10 | service: { | ||
11 | height: 'auto', | ||
12 | display: 'flex', | ||
13 | }, | ||
14 | name: { | ||
15 | marginTop: '4px', | ||
16 | }, | ||
17 | }); | ||
18 | |||
19 | @injectSheet(styles) @observer | ||
20 | class ServiceListItem extends Component { | ||
21 | static propTypes = { | ||
22 | classes: PropTypes.object.isRequired, | ||
23 | isInWorkspace: PropTypes.bool.isRequired, | ||
24 | onToggle: PropTypes.func.isRequired, | ||
25 | service: PropTypes.instanceOf(Service).isRequired, | ||
26 | }; | ||
27 | |||
28 | render() { | ||
29 | const { | ||
30 | classes, | ||
31 | isInWorkspace, | ||
32 | onToggle, | ||
33 | service, | ||
34 | } = this.props; | ||
35 | |||
36 | return ( | ||
37 | <div className={classes.service}> | ||
38 | <Toggle | ||
39 | checked={isInWorkspace} | ||
40 | onChange={onToggle} | ||
41 | label={service.name} | ||
42 | /> | ||
43 | </div> | ||
44 | ); | ||
45 | } | ||
46 | } | ||
47 | |||
48 | export default ServiceListItem; | ||
diff --git a/src/features/workspaces/components/WorkspaceItem.js b/src/features/workspaces/components/WorkspaceItem.js new file mode 100644 index 000000000..b2c2a4830 --- /dev/null +++ b/src/features/workspaces/components/WorkspaceItem.js | |||
@@ -0,0 +1,42 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { intlShape } from 'react-intl'; | ||
4 | import { observer } from 'mobx-react'; | ||
5 | import classnames from 'classnames'; | ||
6 | import Workspace from '../models/Workspace'; | ||
7 | |||
8 | // const messages = defineMessages({}); | ||
9 | |||
10 | @observer | ||
11 | class WorkspaceItem extends Component { | ||
12 | static propTypes = { | ||
13 | workspace: PropTypes.instanceOf(Workspace).isRequired, | ||
14 | onItemClick: PropTypes.func.isRequired, | ||
15 | }; | ||
16 | |||
17 | static contextTypes = { | ||
18 | intl: intlShape, | ||
19 | }; | ||
20 | |||
21 | render() { | ||
22 | const { workspace, onItemClick } = this.props; | ||
23 | // const { intl } = this.context; | ||
24 | |||
25 | return ( | ||
26 | <tr | ||
27 | className={classnames({ | ||
28 | 'workspace-table__row': true, | ||
29 | })} | ||
30 | > | ||
31 | <td | ||
32 | className="workspace-table__column-name" | ||
33 | onClick={() => onItemClick(workspace)} | ||
34 | > | ||
35 | {workspace.name} | ||
36 | </td> | ||
37 | </tr> | ||
38 | ); | ||
39 | } | ||
40 | } | ||
41 | |||
42 | export default WorkspaceItem; | ||
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js new file mode 100644 index 000000000..917807302 --- /dev/null +++ b/src/features/workspaces/components/WorkspacesDashboard.js | |||
@@ -0,0 +1,85 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; | ||
4 | import { defineMessages, intlShape } from 'react-intl'; | ||
5 | import injectSheet from 'react-jss'; | ||
6 | |||
7 | import Loader from '../../../components/ui/Loader'; | ||
8 | import WorkspaceItem from './WorkspaceItem'; | ||
9 | import CreateWorkspaceForm from './CreateWorkspaceForm'; | ||
10 | |||
11 | const messages = defineMessages({ | ||
12 | headline: { | ||
13 | id: 'settings.workspaces.headline', | ||
14 | defaultMessage: '!!!Your workspaces', | ||
15 | }, | ||
16 | noServicesAdded: { | ||
17 | id: 'settings.workspaces.noWorkspacesAdded', | ||
18 | defaultMessage: '!!!You haven\'t added any workspaces yet.', | ||
19 | }, | ||
20 | }); | ||
21 | |||
22 | const styles = () => ({ | ||
23 | createForm: { | ||
24 | height: 'auto', | ||
25 | marginBottom: '20px', | ||
26 | }, | ||
27 | }); | ||
28 | |||
29 | @observer @injectSheet(styles) | ||
30 | class WorkspacesDashboard extends Component { | ||
31 | static propTypes = { | ||
32 | classes: PropTypes.object.isRequired, | ||
33 | isLoading: PropTypes.bool.isRequired, | ||
34 | onCreateWorkspaceSubmit: PropTypes.func.isRequired, | ||
35 | onWorkspaceClick: PropTypes.func.isRequired, | ||
36 | workspaces: MobxPropTypes.arrayOrObservableArray.isRequired, | ||
37 | }; | ||
38 | |||
39 | static contextTypes = { | ||
40 | intl: intlShape, | ||
41 | }; | ||
42 | |||
43 | render() { | ||
44 | const { | ||
45 | workspaces, | ||
46 | isLoading, | ||
47 | onCreateWorkspaceSubmit, | ||
48 | onWorkspaceClick, | ||
49 | classes, | ||
50 | } = this.props; | ||
51 | const { intl } = this.context; | ||
52 | |||
53 | return ( | ||
54 | <div className="settings__main"> | ||
55 | <div className="settings__header"> | ||
56 | <h1>{intl.formatMessage(messages.headline)}</h1> | ||
57 | </div> | ||
58 | <div className="settings__body"> | ||
59 | <div className={classes.body}> | ||
60 | <div className={classes.createForm}> | ||
61 | <CreateWorkspaceForm onSubmit={onCreateWorkspaceSubmit} /> | ||
62 | </div> | ||
63 | {isLoading ? ( | ||
64 | <Loader /> | ||
65 | ) : ( | ||
66 | <table className="workspace-table"> | ||
67 | <tbody> | ||
68 | {workspaces.map(workspace => ( | ||
69 | <WorkspaceItem | ||
70 | key={workspace.id} | ||
71 | workspace={workspace} | ||
72 | onItemClick={w => onWorkspaceClick(w)} | ||
73 | /> | ||
74 | ))} | ||
75 | </tbody> | ||
76 | </table> | ||
77 | )} | ||
78 | </div> | ||
79 | </div> | ||
80 | </div> | ||
81 | ); | ||
82 | } | ||
83 | } | ||
84 | |||
85 | export default WorkspacesDashboard; | ||
diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js new file mode 100644 index 000000000..1b13bc2d4 --- /dev/null +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js | |||
@@ -0,0 +1,59 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import { inject, observer } from 'mobx-react'; | ||
3 | import PropTypes from 'prop-types'; | ||
4 | |||
5 | import ErrorBoundary from '../../../components/util/ErrorBoundary'; | ||
6 | import EditWorkspaceForm from '../components/EditWorkspaceForm'; | ||
7 | import { workspacesState } from '../state'; | ||
8 | import ServicesStore from '../../../stores/ServicesStore'; | ||
9 | import Workspace from '../models/Workspace'; | ||
10 | |||
11 | @inject('stores', 'actions') @observer | ||
12 | class EditWorkspaceScreen extends Component { | ||
13 | static propTypes = { | ||
14 | actions: PropTypes.shape({ | ||
15 | workspace: PropTypes.shape({ | ||
16 | delete: PropTypes.func.isRequired, | ||
17 | }), | ||
18 | }).isRequired, | ||
19 | stores: PropTypes.shape({ | ||
20 | services: PropTypes.instanceOf(ServicesStore).isRequired, | ||
21 | }).isRequired, | ||
22 | }; | ||
23 | |||
24 | onDelete = () => { | ||
25 | const { workspaceBeingEdited } = workspacesState; | ||
26 | const { actions } = this.props; | ||
27 | if (!workspaceBeingEdited) return null; | ||
28 | actions.workspaces.delete({ workspace: workspaceBeingEdited }); | ||
29 | }; | ||
30 | |||
31 | onSave = (values) => { | ||
32 | const { workspaceBeingEdited } = workspacesState; | ||
33 | const { actions } = this.props; | ||
34 | const workspace = new Workspace( | ||
35 | Object.assign({}, workspaceBeingEdited, values), | ||
36 | ); | ||
37 | actions.workspaces.update({ workspace }); | ||
38 | }; | ||
39 | |||
40 | render() { | ||
41 | const { workspaceBeingEdited } = workspacesState; | ||
42 | const { stores } = this.props; | ||
43 | if (!workspaceBeingEdited) return null; | ||
44 | return ( | ||
45 | <ErrorBoundary> | ||
46 | <EditWorkspaceForm | ||
47 | workspace={workspaceBeingEdited} | ||
48 | services={stores.services.all} | ||
49 | onDelete={this.onDelete} | ||
50 | onSave={this.onSave} | ||
51 | isDeleting={false} | ||
52 | isSaving={false} | ||
53 | /> | ||
54 | </ErrorBoundary> | ||
55 | ); | ||
56 | } | ||
57 | } | ||
58 | |||
59 | export default EditWorkspaceScreen; | ||
diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js new file mode 100644 index 000000000..94e714255 --- /dev/null +++ b/src/features/workspaces/containers/WorkspacesScreen.js | |||
@@ -0,0 +1,33 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import { inject, observer } from 'mobx-react'; | ||
3 | import PropTypes from 'prop-types'; | ||
4 | import { workspacesState } from '../state'; | ||
5 | import WorkspacesDashboard from '../components/WorkspacesDashboard'; | ||
6 | import ErrorBoundary from '../../../components/util/ErrorBoundary'; | ||
7 | |||
8 | @inject('actions') @observer | ||
9 | class WorkspacesScreen extends Component { | ||
10 | static propTypes = { | ||
11 | actions: PropTypes.shape({ | ||
12 | workspace: PropTypes.shape({ | ||
13 | edit: PropTypes.func.isRequired, | ||
14 | }), | ||
15 | }).isRequired, | ||
16 | }; | ||
17 | |||
18 | render() { | ||
19 | const { actions } = this.props; | ||
20 | return ( | ||
21 | <ErrorBoundary> | ||
22 | <WorkspacesDashboard | ||
23 | workspaces={workspacesState.workspaces} | ||
24 | isLoading={workspacesState.isLoading} | ||
25 | onCreateWorkspaceSubmit={data => actions.workspaces.create(data)} | ||
26 | onWorkspaceClick={w => actions.workspaces.edit({ workspace: w })} | ||
27 | /> | ||
28 | </ErrorBoundary> | ||
29 | ); | ||
30 | } | ||
31 | } | ||
32 | |||
33 | export default WorkspacesScreen; | ||
diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js new file mode 100644 index 000000000..26cadea64 --- /dev/null +++ b/src/features/workspaces/index.js | |||
@@ -0,0 +1,67 @@ | |||
1 | import { reaction, runInAction } from 'mobx'; | ||
2 | import WorkspacesStore from './store'; | ||
3 | import api from './api'; | ||
4 | import { workspacesState, resetState } from './state'; | ||
5 | |||
6 | const debug = require('debug')('Franz:feature:workspaces'); | ||
7 | |||
8 | let store = null; | ||
9 | |||
10 | export const filterServicesByActiveWorkspace = (services) => { | ||
11 | const { isFeatureActive, activeWorkspace } = workspacesState; | ||
12 | if (isFeatureActive && activeWorkspace) { | ||
13 | return services.filter(s => activeWorkspace.services.includes(s.id)); | ||
14 | } | ||
15 | return services; | ||
16 | }; | ||
17 | |||
18 | export const getActiveWorkspaceServices = services => ( | ||
19 | filterServicesByActiveWorkspace(services) | ||
20 | ); | ||
21 | |||
22 | export default function initWorkspaces(stores, actions) { | ||
23 | const { features, user } = stores; | ||
24 | |||
25 | // Toggle workspace feature | ||
26 | reaction( | ||
27 | () => ( | ||
28 | features.features.isWorkspaceEnabled && ( | ||
29 | !features.features.isWorkspacePremiumFeature || user.data.isPremium | ||
30 | ) | ||
31 | ), | ||
32 | (isEnabled) => { | ||
33 | if (isEnabled) { | ||
34 | debug('Initializing `workspaces` feature'); | ||
35 | store = new WorkspacesStore(stores, api, actions, workspacesState); | ||
36 | store.initialize(); | ||
37 | runInAction(() => { workspacesState.isFeatureActive = true; }); | ||
38 | } else if (store) { | ||
39 | debug('Disabling `workspaces` feature'); | ||
40 | runInAction(() => { workspacesState.isFeatureActive = false; }); | ||
41 | store.teardown(); | ||
42 | store = null; | ||
43 | resetState(); // Reset state to default | ||
44 | } | ||
45 | }, | ||
46 | { | ||
47 | fireImmediately: true, | ||
48 | }, | ||
49 | ); | ||
50 | |||
51 | // Update active service on workspace switches | ||
52 | reaction(() => ({ | ||
53 | isFeatureActive: workspacesState.isFeatureActive, | ||
54 | activeWorkspace: workspacesState.activeWorkspace, | ||
55 | }), ({ isFeatureActive, activeWorkspace }) => { | ||
56 | if (!isFeatureActive) return; | ||
57 | if (activeWorkspace) { | ||
58 | const services = stores.services.allDisplayed; | ||
59 | const activeService = services.find(s => s.isActive); | ||
60 | const workspaceServices = filterServicesByActiveWorkspace(services); | ||
61 | const isActiveServiceInWorkspace = workspaceServices.includes(activeService); | ||
62 | if (!isActiveServiceInWorkspace) { | ||
63 | actions.service.setActive({ serviceId: workspaceServices[0].id }); | ||
64 | } | ||
65 | } | ||
66 | }); | ||
67 | } | ||
diff --git a/src/features/workspaces/models/Workspace.js b/src/features/workspaces/models/Workspace.js new file mode 100644 index 000000000..6c73d7095 --- /dev/null +++ b/src/features/workspaces/models/Workspace.js | |||
@@ -0,0 +1,25 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | |||
3 | export default class Workspace { | ||
4 | id = null; | ||
5 | |||
6 | @observable name = null; | ||
7 | |||
8 | @observable order = null; | ||
9 | |||
10 | @observable services = []; | ||
11 | |||
12 | @observable userId = null; | ||
13 | |||
14 | constructor(data) { | ||
15 | if (!data.id) { | ||
16 | throw Error('Workspace requires Id'); | ||
17 | } | ||
18 | |||
19 | this.id = data.id; | ||
20 | this.name = data.name; | ||
21 | this.order = data.order; | ||
22 | this.services.replace(data.services); | ||
23 | this.userId = data.userId; | ||
24 | } | ||
25 | } | ||
diff --git a/src/features/workspaces/state.js b/src/features/workspaces/state.js new file mode 100644 index 000000000..963b96f81 --- /dev/null +++ b/src/features/workspaces/state.js | |||
@@ -0,0 +1,15 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | |||
3 | const defaultState = { | ||
4 | activeWorkspace: null, | ||
5 | isLoading: false, | ||
6 | isFeatureActive: false, | ||
7 | workspaces: [], | ||
8 | workspaceBeingEdited: null, | ||
9 | }; | ||
10 | |||
11 | export const workspacesState = observable(defaultState); | ||
12 | |||
13 | export function resetState() { | ||
14 | Object.assign(workspacesState, defaultState); | ||
15 | } | ||
diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js new file mode 100644 index 000000000..a2997a0d2 --- /dev/null +++ b/src/features/workspaces/store.js | |||
@@ -0,0 +1,114 @@ | |||
1 | import { observable, reaction, action } from 'mobx'; | ||
2 | import Store from '../../stores/lib/Store'; | ||
3 | import CachedRequest from '../../stores/lib/CachedRequest'; | ||
4 | import Workspace from './models/Workspace'; | ||
5 | import { matchRoute } from '../../helpers/routing-helpers'; | ||
6 | import workspaceActions from './actions'; | ||
7 | |||
8 | const debug = require('debug')('Franz:feature:workspaces'); | ||
9 | |||
10 | export default class WorkspacesStore extends Store { | ||
11 | @observable allWorkspacesRequest = new CachedRequest(this.api, 'getUserWorkspaces'); | ||
12 | |||
13 | constructor(stores, api, actions, state) { | ||
14 | super(stores, api, actions); | ||
15 | this.state = state; | ||
16 | } | ||
17 | |||
18 | setup() { | ||
19 | debug('fetching workspaces'); | ||
20 | this.allWorkspacesRequest.execute(); | ||
21 | |||
22 | /** | ||
23 | * Update the state workspaces array when workspaces request has results. | ||
24 | */ | ||
25 | reaction( | ||
26 | () => this.allWorkspacesRequest.result, | ||
27 | workspaces => this._setWorkspaces(workspaces), | ||
28 | ); | ||
29 | /** | ||
30 | * Update the loading state when workspace request is executing. | ||
31 | */ | ||
32 | reaction( | ||
33 | () => this.allWorkspacesRequest.isExecuting, | ||
34 | isExecuting => this._setIsLoading(isExecuting), | ||
35 | ); | ||
36 | /** | ||
37 | * Update the state with the workspace to be edited when route matches. | ||
38 | */ | ||
39 | reaction( | ||
40 | () => ({ | ||
41 | pathname: this.stores.router.location.pathname, | ||
42 | workspaces: this.state.workspaces, | ||
43 | }), | ||
44 | ({ pathname }) => { | ||
45 | const match = matchRoute('/settings/workspaces/edit/:id', pathname); | ||
46 | if (match) { | ||
47 | this.state.workspaceBeingEdited = this._getWorkspaceById(match.id); | ||
48 | } | ||
49 | }, | ||
50 | ); | ||
51 | |||
52 | workspaceActions.edit.listen(this._edit); | ||
53 | workspaceActions.create.listen(this._create); | ||
54 | workspaceActions.delete.listen(this._delete); | ||
55 | workspaceActions.update.listen(this._update); | ||
56 | workspaceActions.activate.listen(this._setActiveWorkspace); | ||
57 | workspaceActions.deactivate.listen(this._deactivateActiveWorkspace); | ||
58 | } | ||
59 | |||
60 | _getWorkspaceById = id => this.state.workspaces.find(w => w.id === id); | ||
61 | |||
62 | @action _setWorkspaces = (workspaces) => { | ||
63 | debug('setting user workspaces', workspaces.slice()); | ||
64 | this.state.workspaces = workspaces.map(data => new Workspace(data)); | ||
65 | }; | ||
66 | |||
67 | @action _setIsLoading = (isLoading) => { | ||
68 | this.state.isLoading = isLoading; | ||
69 | }; | ||
70 | |||
71 | @action _edit = ({ workspace }) => { | ||
72 | this.stores.router.push(`/settings/workspaces/edit/${workspace.id}`); | ||
73 | }; | ||
74 | |||
75 | @action _create = async ({ name }) => { | ||
76 | try { | ||
77 | const result = await this.api.createWorkspace(name); | ||
78 | const workspace = new Workspace(result); | ||
79 | this.state.workspaces.push(workspace); | ||
80 | this._edit({ workspace }); | ||
81 | } catch (error) { | ||
82 | throw error; | ||
83 | } | ||
84 | }; | ||
85 | |||
86 | @action _delete = async ({ workspace }) => { | ||
87 | try { | ||
88 | await this.api.deleteWorkspace(workspace); | ||
89 | this.state.workspaces.remove(workspace); | ||
90 | this.stores.router.push('/settings/workspaces'); | ||
91 | } catch (error) { | ||
92 | throw error; | ||
93 | } | ||
94 | }; | ||
95 | |||
96 | @action _update = async ({ workspace }) => { | ||
97 | try { | ||
98 | await this.api.updateWorkspace(workspace); | ||
99 | const localWorkspace = this.state.workspaces.find(ws => ws.id === workspace.id); | ||
100 | Object.assign(localWorkspace, workspace); | ||
101 | this.stores.router.push('/settings/workspaces'); | ||
102 | } catch (error) { | ||
103 | throw error; | ||
104 | } | ||
105 | }; | ||
106 | |||
107 | @action _setActiveWorkspace = ({ workspace }) => { | ||
108 | this.state.activeWorkspace = workspace; | ||
109 | }; | ||
110 | |||
111 | @action _deactivateActiveWorkspace = () => { | ||
112 | this.state.activeWorkspace = null; | ||
113 | }; | ||
114 | } | ||
diff --git a/src/features/workspaces/styles/workspaces-table.scss b/src/features/workspaces/styles/workspaces-table.scss new file mode 100644 index 000000000..6d0e7b4f5 --- /dev/null +++ b/src/features/workspaces/styles/workspaces-table.scss | |||
@@ -0,0 +1,53 @@ | |||
1 | @import '../../../styles/config'; | ||
2 | |||
3 | .theme__dark .workspace-table { | ||
4 | .workspace-table__column-info .mdi { color: $dark-theme-gray-lightest; } | ||
5 | |||
6 | .workspace-table__row { | ||
7 | border-bottom: 1px solid $dark-theme-gray-darker; | ||
8 | |||
9 | &:hover { background: $dark-theme-gray-darker; } | ||
10 | &.workspace-table__row--disabled { color: $dark-theme-gray; } | ||
11 | } | ||
12 | } | ||
13 | |||
14 | .workspace-table { | ||
15 | width: 100%; | ||
16 | |||
17 | .workspace-table__toggle { | ||
18 | width: 60px; | ||
19 | |||
20 | .franz-form__field { | ||
21 | margin-bottom: 0; | ||
22 | } | ||
23 | } | ||
24 | |||
25 | .workspace-table__column-action { | ||
26 | width: 40px | ||
27 | } | ||
28 | |||
29 | .workspace-table__column-info { | ||
30 | width: 40px; | ||
31 | |||
32 | .mdi { | ||
33 | color: $theme-gray-light; | ||
34 | display: block; | ||
35 | font-size: 18px; | ||
36 | } | ||
37 | } | ||
38 | |||
39 | .workspace-table__row { | ||
40 | border-bottom: 1px solid $theme-gray-lightest; | ||
41 | |||
42 | &:hover { | ||
43 | cursor: initial; | ||
44 | background: $theme-gray-lightest; | ||
45 | } | ||
46 | |||
47 | &.workspace-table__row--disabled { | ||
48 | color: $theme-gray-light; | ||
49 | } | ||
50 | } | ||
51 | |||
52 | td { padding: 10px; } | ||
53 | } | ||
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 13b8d12fc..3ca62ca56 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json | |||
@@ -85,6 +85,9 @@ | |||
85 | "menu.window" : "Fenster", | 85 | "menu.window" : "Fenster", |
86 | "menu.window.close" : "Schließen", | 86 | "menu.window.close" : "Schließen", |
87 | "menu.window.minimize" : "Minimieren", | 87 | "menu.window.minimize" : "Minimieren", |
88 | "menu.workspaces": "Workspaces", | ||
89 | "menu.workspaces.defaultWorkspace": "All services", | ||
90 | "menu.workspaces.addNewWorkspace": "Add New Workspace", | ||
88 | "password.email.label" : "E-Mail Adresse", | 91 | "password.email.label" : "E-Mail Adresse", |
89 | "password.headline" : "Passwort zurücksetzen", | 92 | "password.headline" : "Passwort zurücksetzen", |
90 | "password.link.login" : "An Deinem Konto anmelden", | 93 | "password.link.login" : "An Deinem Konto anmelden", |
@@ -169,6 +172,7 @@ | |||
169 | "settings.navigation.logout" : "Abmelden", | 172 | "settings.navigation.logout" : "Abmelden", |
170 | "settings.navigation.settings" : "Einstellungen", | 173 | "settings.navigation.settings" : "Einstellungen", |
171 | "settings.navigation.yourServices" : "Deine Dienste", | 174 | "settings.navigation.yourServices" : "Deine Dienste", |
175 | "settings.navigation.yourWorkspaces": "Deine Workspaces", | ||
172 | "settings.recipes.all" : "Alle Dienste", | 176 | "settings.recipes.all" : "Alle Dienste", |
173 | "settings.recipes.dev" : "Entwicklung", | 177 | "settings.recipes.dev" : "Entwicklung", |
174 | "settings.recipes.headline" : "Verfügbare Dienste", | 178 | "settings.recipes.headline" : "Verfügbare Dienste", |
@@ -227,6 +231,14 @@ | |||
227 | "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", | 231 | "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", |
228 | "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", | 232 | "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", |
229 | "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", | 233 | "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", |
234 | "settings.workspaces.headline": "Deine Workspaces", | ||
235 | "settings.workspace.add.form.submitButton": "Workspace erstellen", | ||
236 | "settings.workspace.add.form.name": "Name", | ||
237 | "settings.workspace.form.yourWorkspaces": "Deine Workspaces", | ||
238 | "settings.workspace.form.name": "Name", | ||
239 | "settings.workspace.form.buttonDelete": "Workspace löschen", | ||
240 | "settings.workspace.form.buttonSave": "Workspace speichern", | ||
241 | "settings.workspace.form.servicesInWorkspaceHeadline": "Services in diesem Workspace", | ||
230 | "settings.user.form.accountType.company" : "Firma", | 242 | "settings.user.form.accountType.company" : "Firma", |
231 | "settings.user.form.accountType.individual" : "Einzelperson", | 243 | "settings.user.form.accountType.individual" : "Einzelperson", |
232 | "settings.user.form.accountType.label" : "Konto-Typ", | 244 | "settings.user.form.accountType.label" : "Konto-Typ", |
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 0641c510c..c8bb03ded 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json | |||
@@ -1299,55 +1299,68 @@ | |||
1299 | } | 1299 | } |
1300 | }, | 1300 | }, |
1301 | { | 1301 | { |
1302 | "defaultMessage": "!!!Account", | 1302 | "defaultMessage": "!!!Your workspaces", |
1303 | "end": { | 1303 | "end": { |
1304 | "column": 3, | 1304 | "column": 3, |
1305 | "line": 20 | 1305 | "line": 20 |
1306 | }, | 1306 | }, |
1307 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1307 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1308 | "id": "settings.navigation.yourWorkspaces", | ||
1309 | "start": { | ||
1310 | "column": 18, | ||
1311 | "line": 17 | ||
1312 | } | ||
1313 | }, | ||
1314 | { | ||
1315 | "defaultMessage": "!!!Account", | ||
1316 | "end": { | ||
1317 | "column": 3, | ||
1318 | "line": 24 | ||
1319 | }, | ||
1320 | "file": "src/components/settings/navigation/SettingsNavigation.js", | ||
1308 | "id": "settings.navigation.account", | 1321 | "id": "settings.navigation.account", |
1309 | "start": { | 1322 | "start": { |
1310 | "column": 11, | 1323 | "column": 11, |
1311 | "line": 17 | 1324 | "line": 21 |
1312 | } | 1325 | } |
1313 | }, | 1326 | }, |
1314 | { | 1327 | { |
1315 | "defaultMessage": "!!!Settings", | 1328 | "defaultMessage": "!!!Settings", |
1316 | "end": { | 1329 | "end": { |
1317 | "column": 3, | 1330 | "column": 3, |
1318 | "line": 24 | 1331 | "line": 28 |
1319 | }, | 1332 | }, |
1320 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1333 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1321 | "id": "settings.navigation.settings", | 1334 | "id": "settings.navigation.settings", |
1322 | "start": { | 1335 | "start": { |
1323 | "column": 12, | 1336 | "column": 12, |
1324 | "line": 21 | 1337 | "line": 25 |
1325 | } | 1338 | } |
1326 | }, | 1339 | }, |
1327 | { | 1340 | { |
1328 | "defaultMessage": "!!!Invite Friends", | 1341 | "defaultMessage": "!!!Invite Friends", |
1329 | "end": { | 1342 | "end": { |
1330 | "column": 3, | 1343 | "column": 3, |
1331 | "line": 28 | 1344 | "line": 32 |
1332 | }, | 1345 | }, |
1333 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1346 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1334 | "id": "settings.navigation.inviteFriends", | 1347 | "id": "settings.navigation.inviteFriends", |
1335 | "start": { | 1348 | "start": { |
1336 | "column": 17, | 1349 | "column": 17, |
1337 | "line": 25 | 1350 | "line": 29 |
1338 | } | 1351 | } |
1339 | }, | 1352 | }, |
1340 | { | 1353 | { |
1341 | "defaultMessage": "!!!Logout", | 1354 | "defaultMessage": "!!!Logout", |
1342 | "end": { | 1355 | "end": { |
1343 | "column": 3, | 1356 | "column": 3, |
1344 | "line": 32 | 1357 | "line": 36 |
1345 | }, | 1358 | }, |
1346 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1359 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1347 | "id": "settings.navigation.logout", | 1360 | "id": "settings.navigation.logout", |
1348 | "start": { | 1361 | "start": { |
1349 | "column": 10, | 1362 | "column": 10, |
1350 | "line": 29 | 1363 | "line": 33 |
1351 | } | 1364 | } |
1352 | } | 1365 | } |
1353 | ], | 1366 | ], |
@@ -3165,6 +3178,138 @@ | |||
3165 | { | 3178 | { |
3166 | "descriptors": [ | 3179 | "descriptors": [ |
3167 | { | 3180 | { |
3181 | "defaultMessage": "!!!Save workspace", | ||
3182 | "end": { | ||
3183 | "column": 3, | ||
3184 | "line": 14 | ||
3185 | }, | ||
3186 | "file": "src/features/workspaces/components/CreateWorkspaceForm.js", | ||
3187 | "id": "settings.workspace.add.form.submitButton", | ||
3188 | "start": { | ||
3189 | "column": 16, | ||
3190 | "line": 11 | ||
3191 | } | ||
3192 | }, | ||
3193 | { | ||
3194 | "defaultMessage": "!!!Name", | ||
3195 | "end": { | ||
3196 | "column": 3, | ||
3197 | "line": 18 | ||
3198 | }, | ||
3199 | "file": "src/features/workspaces/components/CreateWorkspaceForm.js", | ||
3200 | "id": "settings.workspace.add.form.name", | ||
3201 | "start": { | ||
3202 | "column": 8, | ||
3203 | "line": 15 | ||
3204 | } | ||
3205 | } | ||
3206 | ], | ||
3207 | "path": "src/features/workspaces/components/CreateWorkspaceForm.json" | ||
3208 | }, | ||
3209 | { | ||
3210 | "descriptors": [ | ||
3211 | { | ||
3212 | "defaultMessage": "!!!Delete workspace", | ||
3213 | "end": { | ||
3214 | "column": 3, | ||
3215 | "line": 19 | ||
3216 | }, | ||
3217 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
3218 | "id": "settings.workspace.form.buttonDelete", | ||
3219 | "start": { | ||
3220 | "column": 16, | ||
3221 | "line": 16 | ||
3222 | } | ||
3223 | }, | ||
3224 | { | ||
3225 | "defaultMessage": "!!!Save workspace", | ||
3226 | "end": { | ||
3227 | "column": 3, | ||
3228 | "line": 23 | ||
3229 | }, | ||
3230 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
3231 | "id": "settings.workspace.form.buttonSave", | ||
3232 | "start": { | ||
3233 | "column": 14, | ||
3234 | "line": 20 | ||
3235 | } | ||
3236 | }, | ||
3237 | { | ||
3238 | "defaultMessage": "!!!Name", | ||
3239 | "end": { | ||
3240 | "column": 3, | ||
3241 | "line": 27 | ||
3242 | }, | ||
3243 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
3244 | "id": "settings.workspace.form.name", | ||
3245 | "start": { | ||
3246 | "column": 8, | ||
3247 | "line": 24 | ||
3248 | } | ||
3249 | }, | ||
3250 | { | ||
3251 | "defaultMessage": "!!!Your workspaces", | ||
3252 | "end": { | ||
3253 | "column": 3, | ||
3254 | "line": 31 | ||
3255 | }, | ||
3256 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
3257 | "id": "settings.workspace.form.yourWorkspaces", | ||
3258 | "start": { | ||
3259 | "column": 18, | ||
3260 | "line": 28 | ||
3261 | } | ||
3262 | }, | ||
3263 | { | ||
3264 | "defaultMessage": "!!!Services in this Workspace", | ||
3265 | "end": { | ||
3266 | "column": 3, | ||
3267 | "line": 35 | ||
3268 | }, | ||
3269 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
3270 | "id": "settings.workspace.form.servicesInWorkspaceHeadline", | ||
3271 | "start": { | ||
3272 | "column": 31, | ||
3273 | "line": 32 | ||
3274 | } | ||
3275 | } | ||
3276 | ], | ||
3277 | "path": "src/features/workspaces/components/EditWorkspaceForm.json" | ||
3278 | }, | ||
3279 | { | ||
3280 | "descriptors": [ | ||
3281 | { | ||
3282 | "defaultMessage": "!!!Your workspaces", | ||
3283 | "end": { | ||
3284 | "column": 3, | ||
3285 | "line": 15 | ||
3286 | }, | ||
3287 | "file": "src/features/workspaces/components/WorkspacesDashboard.js", | ||
3288 | "id": "settings.workspaces.headline", | ||
3289 | "start": { | ||
3290 | "column": 12, | ||
3291 | "line": 12 | ||
3292 | } | ||
3293 | }, | ||
3294 | { | ||
3295 | "defaultMessage": "!!!You haven't added any workspaces yet.", | ||
3296 | "end": { | ||
3297 | "column": 3, | ||
3298 | "line": 19 | ||
3299 | }, | ||
3300 | "file": "src/features/workspaces/components/WorkspacesDashboard.js", | ||
3301 | "id": "settings.workspaces.noWorkspacesAdded", | ||
3302 | "start": { | ||
3303 | "column": 19, | ||
3304 | "line": 16 | ||
3305 | } | ||
3306 | } | ||
3307 | ], | ||
3308 | "path": "src/features/workspaces/components/WorkspacesDashboard.json" | ||
3309 | }, | ||
3310 | { | ||
3311 | "descriptors": [ | ||
3312 | { | ||
3168 | "defaultMessage": "!!!Field is required", | 3313 | "defaultMessage": "!!!Field is required", |
3169 | "end": { | 3314 | "end": { |
3170 | "column": 3, | 3315 | "column": 3, |
@@ -3321,611 +3466,650 @@ | |||
3321 | "defaultMessage": "!!!Edit", | 3466 | "defaultMessage": "!!!Edit", |
3322 | "end": { | 3467 | "end": { |
3323 | "column": 3, | 3468 | "column": 3, |
3324 | "line": 13 | 3469 | "line": 15 |
3325 | }, | 3470 | }, |
3326 | "file": "src/lib/Menu.js", | 3471 | "file": "src/lib/Menu.js", |
3327 | "id": "menu.edit", | 3472 | "id": "menu.edit", |
3328 | "start": { | 3473 | "start": { |
3329 | "column": 8, | 3474 | "column": 8, |
3330 | "line": 10 | 3475 | "line": 12 |
3331 | } | 3476 | } |
3332 | }, | 3477 | }, |
3333 | { | 3478 | { |
3334 | "defaultMessage": "!!!Undo", | 3479 | "defaultMessage": "!!!Undo", |
3335 | "end": { | 3480 | "end": { |
3336 | "column": 3, | 3481 | "column": 3, |
3337 | "line": 17 | 3482 | "line": 19 |
3338 | }, | 3483 | }, |
3339 | "file": "src/lib/Menu.js", | 3484 | "file": "src/lib/Menu.js", |
3340 | "id": "menu.edit.undo", | 3485 | "id": "menu.edit.undo", |
3341 | "start": { | 3486 | "start": { |
3342 | "column": 8, | 3487 | "column": 8, |
3343 | "line": 14 | 3488 | "line": 16 |
3344 | } | 3489 | } |
3345 | }, | 3490 | }, |
3346 | { | 3491 | { |
3347 | "defaultMessage": "!!!Redo", | 3492 | "defaultMessage": "!!!Redo", |
3348 | "end": { | 3493 | "end": { |
3349 | "column": 3, | 3494 | "column": 3, |
3350 | "line": 21 | 3495 | "line": 23 |
3351 | }, | 3496 | }, |
3352 | "file": "src/lib/Menu.js", | 3497 | "file": "src/lib/Menu.js", |
3353 | "id": "menu.edit.redo", | 3498 | "id": "menu.edit.redo", |
3354 | "start": { | 3499 | "start": { |
3355 | "column": 8, | 3500 | "column": 8, |
3356 | "line": 18 | 3501 | "line": 20 |
3357 | } | 3502 | } |
3358 | }, | 3503 | }, |
3359 | { | 3504 | { |
3360 | "defaultMessage": "!!!Cut", | 3505 | "defaultMessage": "!!!Cut", |
3361 | "end": { | 3506 | "end": { |
3362 | "column": 3, | 3507 | "column": 3, |
3363 | "line": 25 | 3508 | "line": 27 |
3364 | }, | 3509 | }, |
3365 | "file": "src/lib/Menu.js", | 3510 | "file": "src/lib/Menu.js", |
3366 | "id": "menu.edit.cut", | 3511 | "id": "menu.edit.cut", |
3367 | "start": { | 3512 | "start": { |
3368 | "column": 7, | 3513 | "column": 7, |
3369 | "line": 22 | 3514 | "line": 24 |
3370 | } | 3515 | } |
3371 | }, | 3516 | }, |
3372 | { | 3517 | { |
3373 | "defaultMessage": "!!!Copy", | 3518 | "defaultMessage": "!!!Copy", |
3374 | "end": { | 3519 | "end": { |
3375 | "column": 3, | 3520 | "column": 3, |
3376 | "line": 29 | 3521 | "line": 31 |
3377 | }, | 3522 | }, |
3378 | "file": "src/lib/Menu.js", | 3523 | "file": "src/lib/Menu.js", |
3379 | "id": "menu.edit.copy", | 3524 | "id": "menu.edit.copy", |
3380 | "start": { | 3525 | "start": { |
3381 | "column": 8, | 3526 | "column": 8, |
3382 | "line": 26 | 3527 | "line": 28 |
3383 | } | 3528 | } |
3384 | }, | 3529 | }, |
3385 | { | 3530 | { |
3386 | "defaultMessage": "!!!Paste", | 3531 | "defaultMessage": "!!!Paste", |
3387 | "end": { | 3532 | "end": { |
3388 | "column": 3, | 3533 | "column": 3, |
3389 | "line": 33 | 3534 | "line": 35 |
3390 | }, | 3535 | }, |
3391 | "file": "src/lib/Menu.js", | 3536 | "file": "src/lib/Menu.js", |
3392 | "id": "menu.edit.paste", | 3537 | "id": "menu.edit.paste", |
3393 | "start": { | 3538 | "start": { |
3394 | "column": 9, | 3539 | "column": 9, |
3395 | "line": 30 | 3540 | "line": 32 |
3396 | } | 3541 | } |
3397 | }, | 3542 | }, |
3398 | { | 3543 | { |
3399 | "defaultMessage": "!!!Paste And Match Style", | 3544 | "defaultMessage": "!!!Paste And Match Style", |
3400 | "end": { | 3545 | "end": { |
3401 | "column": 3, | 3546 | "column": 3, |
3402 | "line": 37 | 3547 | "line": 39 |
3403 | }, | 3548 | }, |
3404 | "file": "src/lib/Menu.js", | 3549 | "file": "src/lib/Menu.js", |
3405 | "id": "menu.edit.pasteAndMatchStyle", | 3550 | "id": "menu.edit.pasteAndMatchStyle", |
3406 | "start": { | 3551 | "start": { |
3407 | "column": 22, | 3552 | "column": 22, |
3408 | "line": 34 | 3553 | "line": 36 |
3409 | } | 3554 | } |
3410 | }, | 3555 | }, |
3411 | { | 3556 | { |
3412 | "defaultMessage": "!!!Delete", | 3557 | "defaultMessage": "!!!Delete", |
3413 | "end": { | 3558 | "end": { |
3414 | "column": 3, | 3559 | "column": 3, |
3415 | "line": 41 | 3560 | "line": 43 |
3416 | }, | 3561 | }, |
3417 | "file": "src/lib/Menu.js", | 3562 | "file": "src/lib/Menu.js", |
3418 | "id": "menu.edit.delete", | 3563 | "id": "menu.edit.delete", |
3419 | "start": { | 3564 | "start": { |
3420 | "column": 10, | 3565 | "column": 10, |
3421 | "line": 38 | 3566 | "line": 40 |
3422 | } | 3567 | } |
3423 | }, | 3568 | }, |
3424 | { | 3569 | { |
3425 | "defaultMessage": "!!!Select All", | 3570 | "defaultMessage": "!!!Select All", |
3426 | "end": { | 3571 | "end": { |
3427 | "column": 3, | 3572 | "column": 3, |
3428 | "line": 45 | 3573 | "line": 47 |
3429 | }, | 3574 | }, |
3430 | "file": "src/lib/Menu.js", | 3575 | "file": "src/lib/Menu.js", |
3431 | "id": "menu.edit.selectAll", | 3576 | "id": "menu.edit.selectAll", |
3432 | "start": { | 3577 | "start": { |
3433 | "column": 13, | 3578 | "column": 13, |
3434 | "line": 42 | 3579 | "line": 44 |
3435 | } | 3580 | } |
3436 | }, | 3581 | }, |
3437 | { | 3582 | { |
3438 | "defaultMessage": "!!!Speech", | 3583 | "defaultMessage": "!!!Speech", |
3439 | "end": { | 3584 | "end": { |
3440 | "column": 3, | 3585 | "column": 3, |
3441 | "line": 49 | 3586 | "line": 51 |
3442 | }, | 3587 | }, |
3443 | "file": "src/lib/Menu.js", | 3588 | "file": "src/lib/Menu.js", |
3444 | "id": "menu.edit.speech", | 3589 | "id": "menu.edit.speech", |
3445 | "start": { | 3590 | "start": { |
3446 | "column": 10, | 3591 | "column": 10, |
3447 | "line": 46 | 3592 | "line": 48 |
3448 | } | 3593 | } |
3449 | }, | 3594 | }, |
3450 | { | 3595 | { |
3451 | "defaultMessage": "!!!Start Speaking", | 3596 | "defaultMessage": "!!!Start Speaking", |
3452 | "end": { | 3597 | "end": { |
3453 | "column": 3, | 3598 | "column": 3, |
3454 | "line": 53 | 3599 | "line": 55 |
3455 | }, | 3600 | }, |
3456 | "file": "src/lib/Menu.js", | 3601 | "file": "src/lib/Menu.js", |
3457 | "id": "menu.edit.startSpeaking", | 3602 | "id": "menu.edit.startSpeaking", |
3458 | "start": { | 3603 | "start": { |
3459 | "column": 17, | 3604 | "column": 17, |
3460 | "line": 50 | 3605 | "line": 52 |
3461 | } | 3606 | } |
3462 | }, | 3607 | }, |
3463 | { | 3608 | { |
3464 | "defaultMessage": "!!!Stop Speaking", | 3609 | "defaultMessage": "!!!Stop Speaking", |
3465 | "end": { | 3610 | "end": { |
3466 | "column": 3, | 3611 | "column": 3, |
3467 | "line": 57 | 3612 | "line": 59 |
3468 | }, | 3613 | }, |
3469 | "file": "src/lib/Menu.js", | 3614 | "file": "src/lib/Menu.js", |
3470 | "id": "menu.edit.stopSpeaking", | 3615 | "id": "menu.edit.stopSpeaking", |
3471 | "start": { | 3616 | "start": { |
3472 | "column": 16, | 3617 | "column": 16, |
3473 | "line": 54 | 3618 | "line": 56 |
3474 | } | 3619 | } |
3475 | }, | 3620 | }, |
3476 | { | 3621 | { |
3477 | "defaultMessage": "!!!Start Dictation", | 3622 | "defaultMessage": "!!!Start Dictation", |
3478 | "end": { | 3623 | "end": { |
3479 | "column": 3, | 3624 | "column": 3, |
3480 | "line": 61 | 3625 | "line": 63 |
3481 | }, | 3626 | }, |
3482 | "file": "src/lib/Menu.js", | 3627 | "file": "src/lib/Menu.js", |
3483 | "id": "menu.edit.startDictation", | 3628 | "id": "menu.edit.startDictation", |
3484 | "start": { | 3629 | "start": { |
3485 | "column": 18, | 3630 | "column": 18, |
3486 | "line": 58 | 3631 | "line": 60 |
3487 | } | 3632 | } |
3488 | }, | 3633 | }, |
3489 | { | 3634 | { |
3490 | "defaultMessage": "!!!Emoji & Symbols", | 3635 | "defaultMessage": "!!!Emoji & Symbols", |
3491 | "end": { | 3636 | "end": { |
3492 | "column": 3, | 3637 | "column": 3, |
3493 | "line": 65 | 3638 | "line": 67 |
3494 | }, | 3639 | }, |
3495 | "file": "src/lib/Menu.js", | 3640 | "file": "src/lib/Menu.js", |
3496 | "id": "menu.edit.emojiSymbols", | 3641 | "id": "menu.edit.emojiSymbols", |
3497 | "start": { | 3642 | "start": { |
3498 | "column": 16, | 3643 | "column": 16, |
3499 | "line": 62 | 3644 | "line": 64 |
3500 | } | 3645 | } |
3501 | }, | 3646 | }, |
3502 | { | 3647 | { |
3503 | "defaultMessage": "!!!Actual Size", | 3648 | "defaultMessage": "!!!Actual Size", |
3504 | "end": { | 3649 | "end": { |
3505 | "column": 3, | 3650 | "column": 3, |
3506 | "line": 69 | 3651 | "line": 71 |
3507 | }, | 3652 | }, |
3508 | "file": "src/lib/Menu.js", | 3653 | "file": "src/lib/Menu.js", |
3509 | "id": "menu.view.resetZoom", | 3654 | "id": "menu.view.resetZoom", |
3510 | "start": { | 3655 | "start": { |
3511 | "column": 13, | 3656 | "column": 13, |
3512 | "line": 66 | 3657 | "line": 68 |
3513 | } | 3658 | } |
3514 | }, | 3659 | }, |
3515 | { | 3660 | { |
3516 | "defaultMessage": "!!!Zoom In", | 3661 | "defaultMessage": "!!!Zoom In", |
3517 | "end": { | 3662 | "end": { |
3518 | "column": 3, | 3663 | "column": 3, |
3519 | "line": 73 | 3664 | "line": 75 |
3520 | }, | 3665 | }, |
3521 | "file": "src/lib/Menu.js", | 3666 | "file": "src/lib/Menu.js", |
3522 | "id": "menu.view.zoomIn", | 3667 | "id": "menu.view.zoomIn", |
3523 | "start": { | 3668 | "start": { |
3524 | "column": 10, | 3669 | "column": 10, |
3525 | "line": 70 | 3670 | "line": 72 |
3526 | } | 3671 | } |
3527 | }, | 3672 | }, |
3528 | { | 3673 | { |
3529 | "defaultMessage": "!!!Zoom Out", | 3674 | "defaultMessage": "!!!Zoom Out", |
3530 | "end": { | 3675 | "end": { |
3531 | "column": 3, | 3676 | "column": 3, |
3532 | "line": 77 | 3677 | "line": 79 |
3533 | }, | 3678 | }, |
3534 | "file": "src/lib/Menu.js", | 3679 | "file": "src/lib/Menu.js", |
3535 | "id": "menu.view.zoomOut", | 3680 | "id": "menu.view.zoomOut", |
3536 | "start": { | 3681 | "start": { |
3537 | "column": 11, | 3682 | "column": 11, |
3538 | "line": 74 | 3683 | "line": 76 |
3539 | } | 3684 | } |
3540 | }, | 3685 | }, |
3541 | { | 3686 | { |
3542 | "defaultMessage": "!!!Enter Full Screen", | 3687 | "defaultMessage": "!!!Enter Full Screen", |
3543 | "end": { | 3688 | "end": { |
3544 | "column": 3, | 3689 | "column": 3, |
3545 | "line": 81 | 3690 | "line": 83 |
3546 | }, | 3691 | }, |
3547 | "file": "src/lib/Menu.js", | 3692 | "file": "src/lib/Menu.js", |
3548 | "id": "menu.view.enterFullScreen", | 3693 | "id": "menu.view.enterFullScreen", |
3549 | "start": { | 3694 | "start": { |
3550 | "column": 19, | 3695 | "column": 19, |
3551 | "line": 78 | 3696 | "line": 80 |
3552 | } | 3697 | } |
3553 | }, | 3698 | }, |
3554 | { | 3699 | { |
3555 | "defaultMessage": "!!!Exit Full Screen", | 3700 | "defaultMessage": "!!!Exit Full Screen", |
3556 | "end": { | 3701 | "end": { |
3557 | "column": 3, | 3702 | "column": 3, |
3558 | "line": 85 | 3703 | "line": 87 |
3559 | }, | 3704 | }, |
3560 | "file": "src/lib/Menu.js", | 3705 | "file": "src/lib/Menu.js", |
3561 | "id": "menu.view.exitFullScreen", | 3706 | "id": "menu.view.exitFullScreen", |
3562 | "start": { | 3707 | "start": { |
3563 | "column": 18, | 3708 | "column": 18, |
3564 | "line": 82 | 3709 | "line": 84 |
3565 | } | 3710 | } |
3566 | }, | 3711 | }, |
3567 | { | 3712 | { |
3568 | "defaultMessage": "!!!Toggle Full Screen", | 3713 | "defaultMessage": "!!!Toggle Full Screen", |
3569 | "end": { | 3714 | "end": { |
3570 | "column": 3, | 3715 | "column": 3, |
3571 | "line": 89 | 3716 | "line": 91 |
3572 | }, | 3717 | }, |
3573 | "file": "src/lib/Menu.js", | 3718 | "file": "src/lib/Menu.js", |
3574 | "id": "menu.view.toggleFullScreen", | 3719 | "id": "menu.view.toggleFullScreen", |
3575 | "start": { | 3720 | "start": { |
3576 | "column": 20, | 3721 | "column": 20, |
3577 | "line": 86 | 3722 | "line": 88 |
3578 | } | 3723 | } |
3579 | }, | 3724 | }, |
3580 | { | 3725 | { |
3581 | "defaultMessage": "!!!Toggle Developer Tools", | 3726 | "defaultMessage": "!!!Toggle Developer Tools", |
3582 | "end": { | 3727 | "end": { |
3583 | "column": 3, | 3728 | "column": 3, |
3584 | "line": 93 | 3729 | "line": 95 |
3585 | }, | 3730 | }, |
3586 | "file": "src/lib/Menu.js", | 3731 | "file": "src/lib/Menu.js", |
3587 | "id": "menu.view.toggleDevTools", | 3732 | "id": "menu.view.toggleDevTools", |
3588 | "start": { | 3733 | "start": { |
3589 | "column": 18, | 3734 | "column": 18, |
3590 | "line": 90 | 3735 | "line": 92 |
3591 | } | 3736 | } |
3592 | }, | 3737 | }, |
3593 | { | 3738 | { |
3594 | "defaultMessage": "!!!Toggle Service Developer Tools", | 3739 | "defaultMessage": "!!!Toggle Service Developer Tools", |
3595 | "end": { | 3740 | "end": { |
3596 | "column": 3, | 3741 | "column": 3, |
3597 | "line": 97 | 3742 | "line": 99 |
3598 | }, | 3743 | }, |
3599 | "file": "src/lib/Menu.js", | 3744 | "file": "src/lib/Menu.js", |
3600 | "id": "menu.view.toggleServiceDevTools", | 3745 | "id": "menu.view.toggleServiceDevTools", |
3601 | "start": { | 3746 | "start": { |
3602 | "column": 25, | 3747 | "column": 25, |
3603 | "line": 94 | 3748 | "line": 96 |
3604 | } | 3749 | } |
3605 | }, | 3750 | }, |
3606 | { | 3751 | { |
3607 | "defaultMessage": "!!!Reload Service", | 3752 | "defaultMessage": "!!!Reload Service", |
3608 | "end": { | 3753 | "end": { |
3609 | "column": 3, | 3754 | "column": 3, |
3610 | "line": 101 | 3755 | "line": 103 |
3611 | }, | 3756 | }, |
3612 | "file": "src/lib/Menu.js", | 3757 | "file": "src/lib/Menu.js", |
3613 | "id": "menu.view.reloadService", | 3758 | "id": "menu.view.reloadService", |
3614 | "start": { | 3759 | "start": { |
3615 | "column": 17, | 3760 | "column": 17, |
3616 | "line": 98 | 3761 | "line": 100 |
3617 | } | 3762 | } |
3618 | }, | 3763 | }, |
3619 | { | 3764 | { |
3620 | "defaultMessage": "!!!Reload Franz", | 3765 | "defaultMessage": "!!!Reload Franz", |
3621 | "end": { | 3766 | "end": { |
3622 | "column": 3, | 3767 | "column": 3, |
3623 | "line": 105 | 3768 | "line": 107 |
3624 | }, | 3769 | }, |
3625 | "file": "src/lib/Menu.js", | 3770 | "file": "src/lib/Menu.js", |
3626 | "id": "menu.view.reloadFranz", | 3771 | "id": "menu.view.reloadFranz", |
3627 | "start": { | 3772 | "start": { |
3628 | "column": 15, | 3773 | "column": 15, |
3629 | "line": 102 | 3774 | "line": 104 |
3630 | } | 3775 | } |
3631 | }, | 3776 | }, |
3632 | { | 3777 | { |
3633 | "defaultMessage": "!!!Minimize", | 3778 | "defaultMessage": "!!!Minimize", |
3634 | "end": { | 3779 | "end": { |
3635 | "column": 3, | 3780 | "column": 3, |
3636 | "line": 109 | 3781 | "line": 111 |
3637 | }, | 3782 | }, |
3638 | "file": "src/lib/Menu.js", | 3783 | "file": "src/lib/Menu.js", |
3639 | "id": "menu.window.minimize", | 3784 | "id": "menu.window.minimize", |
3640 | "start": { | 3785 | "start": { |
3641 | "column": 12, | 3786 | "column": 12, |
3642 | "line": 106 | 3787 | "line": 108 |
3643 | } | 3788 | } |
3644 | }, | 3789 | }, |
3645 | { | 3790 | { |
3646 | "defaultMessage": "!!!Close", | 3791 | "defaultMessage": "!!!Close", |
3647 | "end": { | 3792 | "end": { |
3648 | "column": 3, | 3793 | "column": 3, |
3649 | "line": 113 | 3794 | "line": 115 |
3650 | }, | 3795 | }, |
3651 | "file": "src/lib/Menu.js", | 3796 | "file": "src/lib/Menu.js", |
3652 | "id": "menu.window.close", | 3797 | "id": "menu.window.close", |
3653 | "start": { | 3798 | "start": { |
3654 | "column": 9, | 3799 | "column": 9, |
3655 | "line": 110 | 3800 | "line": 112 |
3656 | } | 3801 | } |
3657 | }, | 3802 | }, |
3658 | { | 3803 | { |
3659 | "defaultMessage": "!!!Learn More", | 3804 | "defaultMessage": "!!!Learn More", |
3660 | "end": { | 3805 | "end": { |
3661 | "column": 3, | 3806 | "column": 3, |
3662 | "line": 117 | 3807 | "line": 119 |
3663 | }, | 3808 | }, |
3664 | "file": "src/lib/Menu.js", | 3809 | "file": "src/lib/Menu.js", |
3665 | "id": "menu.help.learnMore", | 3810 | "id": "menu.help.learnMore", |
3666 | "start": { | 3811 | "start": { |
3667 | "column": 13, | 3812 | "column": 13, |
3668 | "line": 114 | 3813 | "line": 116 |
3669 | } | 3814 | } |
3670 | }, | 3815 | }, |
3671 | { | 3816 | { |
3672 | "defaultMessage": "!!!Changelog", | 3817 | "defaultMessage": "!!!Changelog", |
3673 | "end": { | 3818 | "end": { |
3674 | "column": 3, | 3819 | "column": 3, |
3675 | "line": 121 | 3820 | "line": 123 |
3676 | }, | 3821 | }, |
3677 | "file": "src/lib/Menu.js", | 3822 | "file": "src/lib/Menu.js", |
3678 | "id": "menu.help.changelog", | 3823 | "id": "menu.help.changelog", |
3679 | "start": { | 3824 | "start": { |
3680 | "column": 13, | 3825 | "column": 13, |
3681 | "line": 118 | 3826 | "line": 120 |
3682 | } | 3827 | } |
3683 | }, | 3828 | }, |
3684 | { | 3829 | { |
3685 | "defaultMessage": "!!!Support", | 3830 | "defaultMessage": "!!!Support", |
3686 | "end": { | 3831 | "end": { |
3687 | "column": 3, | 3832 | "column": 3, |
3688 | "line": 125 | 3833 | "line": 127 |
3689 | }, | 3834 | }, |
3690 | "file": "src/lib/Menu.js", | 3835 | "file": "src/lib/Menu.js", |
3691 | "id": "menu.help.support", | 3836 | "id": "menu.help.support", |
3692 | "start": { | 3837 | "start": { |
3693 | "column": 11, | 3838 | "column": 11, |
3694 | "line": 122 | 3839 | "line": 124 |
3695 | } | 3840 | } |
3696 | }, | 3841 | }, |
3697 | { | 3842 | { |
3698 | "defaultMessage": "!!!Terms of Service", | 3843 | "defaultMessage": "!!!Terms of Service", |
3699 | "end": { | 3844 | "end": { |
3700 | "column": 3, | 3845 | "column": 3, |
3701 | "line": 129 | 3846 | "line": 131 |
3702 | }, | 3847 | }, |
3703 | "file": "src/lib/Menu.js", | 3848 | "file": "src/lib/Menu.js", |
3704 | "id": "menu.help.tos", | 3849 | "id": "menu.help.tos", |
3705 | "start": { | 3850 | "start": { |
3706 | "column": 7, | 3851 | "column": 7, |
3707 | "line": 126 | 3852 | "line": 128 |
3708 | } | 3853 | } |
3709 | }, | 3854 | }, |
3710 | { | 3855 | { |
3711 | "defaultMessage": "!!!Privacy Statement", | 3856 | "defaultMessage": "!!!Privacy Statement", |
3712 | "end": { | 3857 | "end": { |
3713 | "column": 3, | 3858 | "column": 3, |
3714 | "line": 133 | 3859 | "line": 135 |
3715 | }, | 3860 | }, |
3716 | "file": "src/lib/Menu.js", | 3861 | "file": "src/lib/Menu.js", |
3717 | "id": "menu.help.privacy", | 3862 | "id": "menu.help.privacy", |
3718 | "start": { | 3863 | "start": { |
3719 | "column": 11, | 3864 | "column": 11, |
3720 | "line": 130 | 3865 | "line": 132 |
3721 | } | 3866 | } |
3722 | }, | 3867 | }, |
3723 | { | 3868 | { |
3724 | "defaultMessage": "!!!File", | 3869 | "defaultMessage": "!!!File", |
3725 | "end": { | 3870 | "end": { |
3726 | "column": 3, | 3871 | "column": 3, |
3727 | "line": 137 | 3872 | "line": 139 |
3728 | }, | 3873 | }, |
3729 | "file": "src/lib/Menu.js", | 3874 | "file": "src/lib/Menu.js", |
3730 | "id": "menu.file", | 3875 | "id": "menu.file", |
3731 | "start": { | 3876 | "start": { |
3732 | "column": 8, | 3877 | "column": 8, |
3733 | "line": 134 | 3878 | "line": 136 |
3734 | } | 3879 | } |
3735 | }, | 3880 | }, |
3736 | { | 3881 | { |
3737 | "defaultMessage": "!!!View", | 3882 | "defaultMessage": "!!!View", |
3738 | "end": { | 3883 | "end": { |
3739 | "column": 3, | 3884 | "column": 3, |
3740 | "line": 141 | 3885 | "line": 143 |
3741 | }, | 3886 | }, |
3742 | "file": "src/lib/Menu.js", | 3887 | "file": "src/lib/Menu.js", |
3743 | "id": "menu.view", | 3888 | "id": "menu.view", |
3744 | "start": { | 3889 | "start": { |
3745 | "column": 8, | 3890 | "column": 8, |
3746 | "line": 138 | 3891 | "line": 140 |
3747 | } | 3892 | } |
3748 | }, | 3893 | }, |
3749 | { | 3894 | { |
3750 | "defaultMessage": "!!!Services", | 3895 | "defaultMessage": "!!!Services", |
3751 | "end": { | 3896 | "end": { |
3752 | "column": 3, | 3897 | "column": 3, |
3753 | "line": 145 | 3898 | "line": 147 |
3754 | }, | 3899 | }, |
3755 | "file": "src/lib/Menu.js", | 3900 | "file": "src/lib/Menu.js", |
3756 | "id": "menu.services", | 3901 | "id": "menu.services", |
3757 | "start": { | 3902 | "start": { |
3758 | "column": 12, | 3903 | "column": 12, |
3759 | "line": 142 | 3904 | "line": 144 |
3760 | } | 3905 | } |
3761 | }, | 3906 | }, |
3762 | { | 3907 | { |
3763 | "defaultMessage": "!!!Window", | 3908 | "defaultMessage": "!!!Window", |
3764 | "end": { | 3909 | "end": { |
3765 | "column": 3, | 3910 | "column": 3, |
3766 | "line": 149 | 3911 | "line": 151 |
3767 | }, | 3912 | }, |
3768 | "file": "src/lib/Menu.js", | 3913 | "file": "src/lib/Menu.js", |
3769 | "id": "menu.window", | 3914 | "id": "menu.window", |
3770 | "start": { | 3915 | "start": { |
3771 | "column": 10, | 3916 | "column": 10, |
3772 | "line": 146 | 3917 | "line": 148 |
3773 | } | 3918 | } |
3774 | }, | 3919 | }, |
3775 | { | 3920 | { |
3776 | "defaultMessage": "!!!Help", | 3921 | "defaultMessage": "!!!Help", |
3777 | "end": { | 3922 | "end": { |
3778 | "column": 3, | 3923 | "column": 3, |
3779 | "line": 153 | 3924 | "line": 155 |
3780 | }, | 3925 | }, |
3781 | "file": "src/lib/Menu.js", | 3926 | "file": "src/lib/Menu.js", |
3782 | "id": "menu.help", | 3927 | "id": "menu.help", |
3783 | "start": { | 3928 | "start": { |
3784 | "column": 8, | 3929 | "column": 8, |
3785 | "line": 150 | 3930 | "line": 152 |
3786 | } | 3931 | } |
3787 | }, | 3932 | }, |
3788 | { | 3933 | { |
3789 | "defaultMessage": "!!!About Franz", | 3934 | "defaultMessage": "!!!About Franz", |
3790 | "end": { | 3935 | "end": { |
3791 | "column": 3, | 3936 | "column": 3, |
3792 | "line": 157 | 3937 | "line": 159 |
3793 | }, | 3938 | }, |
3794 | "file": "src/lib/Menu.js", | 3939 | "file": "src/lib/Menu.js", |
3795 | "id": "menu.app.about", | 3940 | "id": "menu.app.about", |
3796 | "start": { | 3941 | "start": { |
3797 | "column": 9, | 3942 | "column": 9, |
3798 | "line": 154 | 3943 | "line": 156 |
3799 | } | 3944 | } |
3800 | }, | 3945 | }, |
3801 | { | 3946 | { |
3802 | "defaultMessage": "!!!Settings", | 3947 | "defaultMessage": "!!!Settings", |
3803 | "end": { | 3948 | "end": { |
3804 | "column": 3, | 3949 | "column": 3, |
3805 | "line": 161 | 3950 | "line": 163 |
3806 | }, | 3951 | }, |
3807 | "file": "src/lib/Menu.js", | 3952 | "file": "src/lib/Menu.js", |
3808 | "id": "menu.app.settings", | 3953 | "id": "menu.app.settings", |
3809 | "start": { | 3954 | "start": { |
3810 | "column": 12, | 3955 | "column": 12, |
3811 | "line": 158 | 3956 | "line": 160 |
3812 | } | 3957 | } |
3813 | }, | 3958 | }, |
3814 | { | 3959 | { |
3815 | "defaultMessage": "!!!Hide", | 3960 | "defaultMessage": "!!!Hide", |
3816 | "end": { | 3961 | "end": { |
3817 | "column": 3, | 3962 | "column": 3, |
3818 | "line": 165 | 3963 | "line": 167 |
3819 | }, | 3964 | }, |
3820 | "file": "src/lib/Menu.js", | 3965 | "file": "src/lib/Menu.js", |
3821 | "id": "menu.app.hide", | 3966 | "id": "menu.app.hide", |
3822 | "start": { | 3967 | "start": { |
3823 | "column": 8, | 3968 | "column": 8, |
3824 | "line": 162 | 3969 | "line": 164 |
3825 | } | 3970 | } |
3826 | }, | 3971 | }, |
3827 | { | 3972 | { |
3828 | "defaultMessage": "!!!Hide Others", | 3973 | "defaultMessage": "!!!Hide Others", |
3829 | "end": { | 3974 | "end": { |
3830 | "column": 3, | 3975 | "column": 3, |
3831 | "line": 169 | 3976 | "line": 171 |
3832 | }, | 3977 | }, |
3833 | "file": "src/lib/Menu.js", | 3978 | "file": "src/lib/Menu.js", |
3834 | "id": "menu.app.hideOthers", | 3979 | "id": "menu.app.hideOthers", |
3835 | "start": { | 3980 | "start": { |
3836 | "column": 14, | 3981 | "column": 14, |
3837 | "line": 166 | 3982 | "line": 168 |
3838 | } | 3983 | } |
3839 | }, | 3984 | }, |
3840 | { | 3985 | { |
3841 | "defaultMessage": "!!!Unhide", | 3986 | "defaultMessage": "!!!Unhide", |
3842 | "end": { | 3987 | "end": { |
3843 | "column": 3, | 3988 | "column": 3, |
3844 | "line": 173 | 3989 | "line": 175 |
3845 | }, | 3990 | }, |
3846 | "file": "src/lib/Menu.js", | 3991 | "file": "src/lib/Menu.js", |
3847 | "id": "menu.app.unhide", | 3992 | "id": "menu.app.unhide", |
3848 | "start": { | 3993 | "start": { |
3849 | "column": 10, | 3994 | "column": 10, |
3850 | "line": 170 | 3995 | "line": 172 |
3851 | } | 3996 | } |
3852 | }, | 3997 | }, |
3853 | { | 3998 | { |
3854 | "defaultMessage": "!!!Quit", | 3999 | "defaultMessage": "!!!Quit", |
3855 | "end": { | 4000 | "end": { |
3856 | "column": 3, | 4001 | "column": 3, |
3857 | "line": 177 | 4002 | "line": 179 |
3858 | }, | 4003 | }, |
3859 | "file": "src/lib/Menu.js", | 4004 | "file": "src/lib/Menu.js", |
3860 | "id": "menu.app.quit", | 4005 | "id": "menu.app.quit", |
3861 | "start": { | 4006 | "start": { |
3862 | "column": 8, | 4007 | "column": 8, |
3863 | "line": 174 | 4008 | "line": 176 |
3864 | } | 4009 | } |
3865 | }, | 4010 | }, |
3866 | { | 4011 | { |
3867 | "defaultMessage": "!!!Add New Service...", | 4012 | "defaultMessage": "!!!Add New Service...", |
3868 | "end": { | 4013 | "end": { |
3869 | "column": 3, | 4014 | "column": 3, |
3870 | "line": 181 | 4015 | "line": 183 |
3871 | }, | 4016 | }, |
3872 | "file": "src/lib/Menu.js", | 4017 | "file": "src/lib/Menu.js", |
3873 | "id": "menu.services.addNewService", | 4018 | "id": "menu.services.addNewService", |
3874 | "start": { | 4019 | "start": { |
3875 | "column": 17, | 4020 | "column": 17, |
3876 | "line": 178 | 4021 | "line": 180 |
4022 | } | ||
4023 | }, | ||
4024 | { | ||
4025 | "defaultMessage": "!!!Add New Workspace...", | ||
4026 | "end": { | ||
4027 | "column": 3, | ||
4028 | "line": 187 | ||
4029 | }, | ||
4030 | "file": "src/lib/Menu.js", | ||
4031 | "id": "menu.workspaces.addNewWorkspace", | ||
4032 | "start": { | ||
4033 | "column": 19, | ||
4034 | "line": 184 | ||
3877 | } | 4035 | } |
3878 | }, | 4036 | }, |
3879 | { | 4037 | { |
3880 | "defaultMessage": "!!!Activate next service...", | 4038 | "defaultMessage": "!!!Activate next service...", |
3881 | "end": { | 4039 | "end": { |
3882 | "column": 3, | 4040 | "column": 3, |
3883 | "line": 185 | 4041 | "line": 191 |
3884 | }, | 4042 | }, |
3885 | "file": "src/lib/Menu.js", | 4043 | "file": "src/lib/Menu.js", |
3886 | "id": "menu.services.setNextServiceActive", | 4044 | "id": "menu.services.setNextServiceActive", |
3887 | "start": { | 4045 | "start": { |
3888 | "column": 23, | 4046 | "column": 23, |
3889 | "line": 182 | 4047 | "line": 188 |
3890 | } | 4048 | } |
3891 | }, | 4049 | }, |
3892 | { | 4050 | { |
3893 | "defaultMessage": "!!!Activate previous service...", | 4051 | "defaultMessage": "!!!Activate previous service...", |
3894 | "end": { | 4052 | "end": { |
3895 | "column": 3, | 4053 | "column": 3, |
3896 | "line": 189 | 4054 | "line": 195 |
3897 | }, | 4055 | }, |
3898 | "file": "src/lib/Menu.js", | 4056 | "file": "src/lib/Menu.js", |
3899 | "id": "menu.services.activatePreviousService", | 4057 | "id": "menu.services.activatePreviousService", |
3900 | "start": { | 4058 | "start": { |
3901 | "column": 27, | 4059 | "column": 27, |
3902 | "line": 186 | 4060 | "line": 192 |
3903 | } | 4061 | } |
3904 | }, | 4062 | }, |
3905 | { | 4063 | { |
3906 | "defaultMessage": "!!!Disable notifications & audio", | 4064 | "defaultMessage": "!!!Disable notifications & audio", |
3907 | "end": { | 4065 | "end": { |
3908 | "column": 3, | 4066 | "column": 3, |
3909 | "line": 193 | 4067 | "line": 199 |
3910 | }, | 4068 | }, |
3911 | "file": "src/lib/Menu.js", | 4069 | "file": "src/lib/Menu.js", |
3912 | "id": "sidebar.muteApp", | 4070 | "id": "sidebar.muteApp", |
3913 | "start": { | 4071 | "start": { |
3914 | "column": 11, | 4072 | "column": 11, |
3915 | "line": 190 | 4073 | "line": 196 |
3916 | } | 4074 | } |
3917 | }, | 4075 | }, |
3918 | { | 4076 | { |
3919 | "defaultMessage": "!!!Enable notifications & audio", | 4077 | "defaultMessage": "!!!Enable notifications & audio", |
3920 | "end": { | 4078 | "end": { |
3921 | "column": 3, | 4079 | "column": 3, |
3922 | "line": 197 | 4080 | "line": 203 |
3923 | }, | 4081 | }, |
3924 | "file": "src/lib/Menu.js", | 4082 | "file": "src/lib/Menu.js", |
3925 | "id": "sidebar.unmuteApp", | 4083 | "id": "sidebar.unmuteApp", |
3926 | "start": { | 4084 | "start": { |
3927 | "column": 13, | 4085 | "column": 13, |
3928 | "line": 194 | 4086 | "line": 200 |
4087 | } | ||
4088 | }, | ||
4089 | { | ||
4090 | "defaultMessage": "!!!Workspaces", | ||
4091 | "end": { | ||
4092 | "column": 3, | ||
4093 | "line": 207 | ||
4094 | }, | ||
4095 | "file": "src/lib/Menu.js", | ||
4096 | "id": "menu.workspaces", | ||
4097 | "start": { | ||
4098 | "column": 14, | ||
4099 | "line": 204 | ||
4100 | } | ||
4101 | }, | ||
4102 | { | ||
4103 | "defaultMessage": "!!!Default", | ||
4104 | "end": { | ||
4105 | "column": 3, | ||
4106 | "line": 211 | ||
4107 | }, | ||
4108 | "file": "src/lib/Menu.js", | ||
4109 | "id": "menu.workspaces.defaultWorkspace", | ||
4110 | "start": { | ||
4111 | "column": 20, | ||
4112 | "line": 208 | ||
3929 | } | 4113 | } |
3930 | } | 4114 | } |
3931 | ], | 4115 | ], |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 7543d38bd..1041a8b5f 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -87,6 +87,9 @@ | |||
87 | "menu.window": "Window", | 87 | "menu.window": "Window", |
88 | "menu.window.close": "Close", | 88 | "menu.window.close": "Close", |
89 | "menu.window.minimize": "Minimize", | 89 | "menu.window.minimize": "Minimize", |
90 | "menu.workspaces": "Workspaces", | ||
91 | "menu.workspaces.addNewWorkspace": "Add New Workspace...", | ||
92 | "menu.workspaces.defaultWorkspace": "All services", | ||
90 | "password.email.label": "Email address", | 93 | "password.email.label": "Email address", |
91 | "password.headline": "Reset password", | 94 | "password.headline": "Reset password", |
92 | "password.link.login": "Sign in to your account", | 95 | "password.link.login": "Sign in to your account", |
@@ -169,6 +172,7 @@ | |||
169 | "settings.navigation.logout": "Logout", | 172 | "settings.navigation.logout": "Logout", |
170 | "settings.navigation.settings": "Settings", | 173 | "settings.navigation.settings": "Settings", |
171 | "settings.navigation.yourServices": "Your services", | 174 | "settings.navigation.yourServices": "Your services", |
175 | "settings.navigation.yourWorkspaces": "Your workspaces", | ||
172 | "settings.recipes.all": "All services", | 176 | "settings.recipes.all": "All services", |
173 | "settings.recipes.dev": "Development", | 177 | "settings.recipes.dev": "Development", |
174 | "settings.recipes.headline": "Available services", | 178 | "settings.recipes.headline": "Available services", |
@@ -235,6 +239,15 @@ | |||
235 | "settings.user.form.firstname": "First Name", | 239 | "settings.user.form.firstname": "First Name", |
236 | "settings.user.form.lastname": "Last Name", | 240 | "settings.user.form.lastname": "Last Name", |
237 | "settings.user.form.newPassword": "New password", | 241 | "settings.user.form.newPassword": "New password", |
242 | "settings.workspace.add.form.name": "Name", | ||
243 | "settings.workspace.add.form.submitButton": "Save workspace", | ||
244 | "settings.workspace.form.buttonDelete": "Delete workspace", | ||
245 | "settings.workspace.form.buttonSave": "Save workspace", | ||
246 | "settings.workspace.form.name": "Name", | ||
247 | "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", | ||
248 | "settings.workspace.form.yourWorkspaces": "Your workspaces", | ||
249 | "settings.workspaces.headline": "Your workspaces", | ||
250 | "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", | ||
238 | "sidebar.addNewService": "Add new service", | 251 | "sidebar.addNewService": "Add new service", |
239 | "sidebar.muteApp": "Disable notifications & audio", | 252 | "sidebar.muteApp": "Disable notifications & audio", |
240 | "sidebar.settings": "Settings", | 253 | "sidebar.settings": "Settings", |
diff --git a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json index 785ce9f29..4d8443b02 100644 --- a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json +++ b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json | |||
@@ -26,15 +26,28 @@ | |||
26 | } | 26 | } |
27 | }, | 27 | }, |
28 | { | 28 | { |
29 | "id": "settings.navigation.yourWorkspaces", | ||
30 | "defaultMessage": "!!!Your workspaces", | ||
31 | "file": "src/components/settings/navigation/SettingsNavigation.js", | ||
32 | "start": { | ||
33 | "line": 17, | ||
34 | "column": 18 | ||
35 | }, | ||
36 | "end": { | ||
37 | "line": 20, | ||
38 | "column": 3 | ||
39 | } | ||
40 | }, | ||
41 | { | ||
29 | "id": "settings.navigation.account", | 42 | "id": "settings.navigation.account", |
30 | "defaultMessage": "!!!Account", | 43 | "defaultMessage": "!!!Account", |
31 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 44 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
32 | "start": { | 45 | "start": { |
33 | "line": 17, | 46 | "line": 21, |
34 | "column": 11 | 47 | "column": 11 |
35 | }, | 48 | }, |
36 | "end": { | 49 | "end": { |
37 | "line": 20, | 50 | "line": 24, |
38 | "column": 3 | 51 | "column": 3 |
39 | } | 52 | } |
40 | }, | 53 | }, |
@@ -43,11 +56,11 @@ | |||
43 | "defaultMessage": "!!!Settings", | 56 | "defaultMessage": "!!!Settings", |
44 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 57 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
45 | "start": { | 58 | "start": { |
46 | "line": 21, | 59 | "line": 25, |
47 | "column": 12 | 60 | "column": 12 |
48 | }, | 61 | }, |
49 | "end": { | 62 | "end": { |
50 | "line": 24, | 63 | "line": 28, |
51 | "column": 3 | 64 | "column": 3 |
52 | } | 65 | } |
53 | }, | 66 | }, |
@@ -56,11 +69,11 @@ | |||
56 | "defaultMessage": "!!!Invite Friends", | 69 | "defaultMessage": "!!!Invite Friends", |
57 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 70 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
58 | "start": { | 71 | "start": { |
59 | "line": 25, | 72 | "line": 29, |
60 | "column": 17 | 73 | "column": 17 |
61 | }, | 74 | }, |
62 | "end": { | 75 | "end": { |
63 | "line": 28, | 76 | "line": 32, |
64 | "column": 3 | 77 | "column": 3 |
65 | } | 78 | } |
66 | }, | 79 | }, |
@@ -69,11 +82,11 @@ | |||
69 | "defaultMessage": "!!!Logout", | 82 | "defaultMessage": "!!!Logout", |
70 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 83 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
71 | "start": { | 84 | "start": { |
72 | "line": 29, | 85 | "line": 33, |
73 | "column": 10 | 86 | "column": 10 |
74 | }, | 87 | }, |
75 | "end": { | 88 | "end": { |
76 | "line": 32, | 89 | "line": 36, |
77 | "column": 3 | 90 | "column": 3 |
78 | } | 91 | } |
79 | } | 92 | } |
diff --git a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json new file mode 100644 index 000000000..1d5063a97 --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json | |||
@@ -0,0 +1,28 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "settings.workspace.add.form.submitButton", | ||
4 | "defaultMessage": "!!!Save workspace", | ||
5 | "file": "src/features/workspaces/components/CreateWorkspaceForm.js", | ||
6 | "start": { | ||
7 | "line": 11, | ||
8 | "column": 16 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 14, | ||
12 | "column": 3 | ||
13 | } | ||
14 | }, | ||
15 | { | ||
16 | "id": "settings.workspace.add.form.name", | ||
17 | "defaultMessage": "!!!Name", | ||
18 | "file": "src/features/workspaces/components/CreateWorkspaceForm.js", | ||
19 | "start": { | ||
20 | "line": 15, | ||
21 | "column": 8 | ||
22 | }, | ||
23 | "end": { | ||
24 | "line": 18, | ||
25 | "column": 3 | ||
26 | } | ||
27 | } | ||
28 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json new file mode 100644 index 000000000..467f49cda --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json | |||
@@ -0,0 +1,67 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "settings.workspace.form.buttonDelete", | ||
4 | "defaultMessage": "!!!Delete workspace", | ||
5 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
6 | "start": { | ||
7 | "line": 16, | ||
8 | "column": 16 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 19, | ||
12 | "column": 3 | ||
13 | } | ||
14 | }, | ||
15 | { | ||
16 | "id": "settings.workspace.form.buttonSave", | ||
17 | "defaultMessage": "!!!Save workspace", | ||
18 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
19 | "start": { | ||
20 | "line": 20, | ||
21 | "column": 14 | ||
22 | }, | ||
23 | "end": { | ||
24 | "line": 23, | ||
25 | "column": 3 | ||
26 | } | ||
27 | }, | ||
28 | { | ||
29 | "id": "settings.workspace.form.name", | ||
30 | "defaultMessage": "!!!Name", | ||
31 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
32 | "start": { | ||
33 | "line": 24, | ||
34 | "column": 8 | ||
35 | }, | ||
36 | "end": { | ||
37 | "line": 27, | ||
38 | "column": 3 | ||
39 | } | ||
40 | }, | ||
41 | { | ||
42 | "id": "settings.workspace.form.yourWorkspaces", | ||
43 | "defaultMessage": "!!!Your workspaces", | ||
44 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
45 | "start": { | ||
46 | "line": 28, | ||
47 | "column": 18 | ||
48 | }, | ||
49 | "end": { | ||
50 | "line": 31, | ||
51 | "column": 3 | ||
52 | } | ||
53 | }, | ||
54 | { | ||
55 | "id": "settings.workspace.form.servicesInWorkspaceHeadline", | ||
56 | "defaultMessage": "!!!Services in this Workspace", | ||
57 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
58 | "start": { | ||
59 | "line": 32, | ||
60 | "column": 31 | ||
61 | }, | ||
62 | "end": { | ||
63 | "line": 35, | ||
64 | "column": 3 | ||
65 | } | ||
66 | } | ||
67 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json new file mode 100644 index 000000000..0e053a124 --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json | |||
@@ -0,0 +1,28 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "settings.workspaces.headline", | ||
4 | "defaultMessage": "!!!Your workspaces", | ||
5 | "file": "src/features/workspaces/components/WorkspacesDashboard.js", | ||
6 | "start": { | ||
7 | "line": 12, | ||
8 | "column": 12 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 15, | ||
12 | "column": 3 | ||
13 | } | ||
14 | }, | ||
15 | { | ||
16 | "id": "settings.workspaces.noWorkspacesAdded", | ||
17 | "defaultMessage": "!!!You haven't added any workspaces yet.", | ||
18 | "file": "src/features/workspaces/components/WorkspacesDashboard.js", | ||
19 | "start": { | ||
20 | "line": 16, | ||
21 | "column": 19 | ||
22 | }, | ||
23 | "end": { | ||
24 | "line": 19, | ||
25 | "column": 3 | ||
26 | } | ||
27 | } | ||
28 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index 9314f5cce..53fa038c6 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Edit", | 4 | "defaultMessage": "!!!Edit", |
5 | "file": "src/lib/Menu.js", | 5 | "file": "src/lib/Menu.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 10, | 7 | "line": 12, |
8 | "column": 8 | 8 | "column": 8 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 13, | 11 | "line": 15, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Undo", | 17 | "defaultMessage": "!!!Undo", |
18 | "file": "src/lib/Menu.js", | 18 | "file": "src/lib/Menu.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 14, | 20 | "line": 16, |
21 | "column": 8 | 21 | "column": 8 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 17, | 24 | "line": 19, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Redo", | 30 | "defaultMessage": "!!!Redo", |
31 | "file": "src/lib/Menu.js", | 31 | "file": "src/lib/Menu.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 18, | 33 | "line": 20, |
34 | "column": 8 | 34 | "column": 8 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 21, | 37 | "line": 23, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Cut", | 43 | "defaultMessage": "!!!Cut", |
44 | "file": "src/lib/Menu.js", | 44 | "file": "src/lib/Menu.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 22, | 46 | "line": 24, |
47 | "column": 7 | 47 | "column": 7 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 25, | 50 | "line": 27, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Copy", | 56 | "defaultMessage": "!!!Copy", |
57 | "file": "src/lib/Menu.js", | 57 | "file": "src/lib/Menu.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 26, | 59 | "line": 28, |
60 | "column": 8 | 60 | "column": 8 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 29, | 63 | "line": 31, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Paste", | 69 | "defaultMessage": "!!!Paste", |
70 | "file": "src/lib/Menu.js", | 70 | "file": "src/lib/Menu.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 30, | 72 | "line": 32, |
73 | "column": 9 | 73 | "column": 9 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 33, | 76 | "line": 35, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Paste And Match Style", | 82 | "defaultMessage": "!!!Paste And Match Style", |
83 | "file": "src/lib/Menu.js", | 83 | "file": "src/lib/Menu.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 34, | 85 | "line": 36, |
86 | "column": 22 | 86 | "column": 22 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 37, | 89 | "line": 39, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Delete", | 95 | "defaultMessage": "!!!Delete", |
96 | "file": "src/lib/Menu.js", | 96 | "file": "src/lib/Menu.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 38, | 98 | "line": 40, |
99 | "column": 10 | 99 | "column": 10 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 41, | 102 | "line": 43, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Select All", | 108 | "defaultMessage": "!!!Select All", |
109 | "file": "src/lib/Menu.js", | 109 | "file": "src/lib/Menu.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 42, | 111 | "line": 44, |
112 | "column": 13 | 112 | "column": 13 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 45, | 115 | "line": 47, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,11 @@ | |||
121 | "defaultMessage": "!!!Speech", | 121 | "defaultMessage": "!!!Speech", |
122 | "file": "src/lib/Menu.js", | 122 | "file": "src/lib/Menu.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 46, | 124 | "line": 48, |
125 | "column": 10 | 125 | "column": 10 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 49, | 128 | "line": 51, |
129 | "column": 3 | 129 | "column": 3 |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -134,11 +134,11 @@ | |||
134 | "defaultMessage": "!!!Start Speaking", | 134 | "defaultMessage": "!!!Start Speaking", |
135 | "file": "src/lib/Menu.js", | 135 | "file": "src/lib/Menu.js", |
136 | "start": { | 136 | "start": { |
137 | "line": 50, | 137 | "line": 52, |
138 | "column": 17 | 138 | "column": 17 |
139 | }, | 139 | }, |
140 | "end": { | 140 | "end": { |
141 | "line": 53, | 141 | "line": 55, |
142 | "column": 3 | 142 | "column": 3 |
143 | } | 143 | } |
144 | }, | 144 | }, |
@@ -147,11 +147,11 @@ | |||
147 | "defaultMessage": "!!!Stop Speaking", | 147 | "defaultMessage": "!!!Stop Speaking", |
148 | "file": "src/lib/Menu.js", | 148 | "file": "src/lib/Menu.js", |
149 | "start": { | 149 | "start": { |
150 | "line": 54, | 150 | "line": 56, |
151 | "column": 16 | 151 | "column": 16 |
152 | }, | 152 | }, |
153 | "end": { | 153 | "end": { |
154 | "line": 57, | 154 | "line": 59, |
155 | "column": 3 | 155 | "column": 3 |
156 | } | 156 | } |
157 | }, | 157 | }, |
@@ -160,11 +160,11 @@ | |||
160 | "defaultMessage": "!!!Start Dictation", | 160 | "defaultMessage": "!!!Start Dictation", |
161 | "file": "src/lib/Menu.js", | 161 | "file": "src/lib/Menu.js", |
162 | "start": { | 162 | "start": { |
163 | "line": 58, | 163 | "line": 60, |
164 | "column": 18 | 164 | "column": 18 |
165 | }, | 165 | }, |
166 | "end": { | 166 | "end": { |
167 | "line": 61, | 167 | "line": 63, |
168 | "column": 3 | 168 | "column": 3 |
169 | } | 169 | } |
170 | }, | 170 | }, |
@@ -173,11 +173,11 @@ | |||
173 | "defaultMessage": "!!!Emoji & Symbols", | 173 | "defaultMessage": "!!!Emoji & Symbols", |
174 | "file": "src/lib/Menu.js", | 174 | "file": "src/lib/Menu.js", |
175 | "start": { | 175 | "start": { |
176 | "line": 62, | 176 | "line": 64, |
177 | "column": 16 | 177 | "column": 16 |
178 | }, | 178 | }, |
179 | "end": { | 179 | "end": { |
180 | "line": 65, | 180 | "line": 67, |
181 | "column": 3 | 181 | "column": 3 |
182 | } | 182 | } |
183 | }, | 183 | }, |
@@ -186,11 +186,11 @@ | |||
186 | "defaultMessage": "!!!Actual Size", | 186 | "defaultMessage": "!!!Actual Size", |
187 | "file": "src/lib/Menu.js", | 187 | "file": "src/lib/Menu.js", |
188 | "start": { | 188 | "start": { |
189 | "line": 66, | 189 | "line": 68, |
190 | "column": 13 | 190 | "column": 13 |
191 | }, | 191 | }, |
192 | "end": { | 192 | "end": { |
193 | "line": 69, | 193 | "line": 71, |
194 | "column": 3 | 194 | "column": 3 |
195 | } | 195 | } |
196 | }, | 196 | }, |
@@ -199,11 +199,11 @@ | |||
199 | "defaultMessage": "!!!Zoom In", | 199 | "defaultMessage": "!!!Zoom In", |
200 | "file": "src/lib/Menu.js", | 200 | "file": "src/lib/Menu.js", |
201 | "start": { | 201 | "start": { |
202 | "line": 70, | 202 | "line": 72, |
203 | "column": 10 | 203 | "column": 10 |
204 | }, | 204 | }, |
205 | "end": { | 205 | "end": { |
206 | "line": 73, | 206 | "line": 75, |
207 | "column": 3 | 207 | "column": 3 |
208 | } | 208 | } |
209 | }, | 209 | }, |
@@ -212,11 +212,11 @@ | |||
212 | "defaultMessage": "!!!Zoom Out", | 212 | "defaultMessage": "!!!Zoom Out", |
213 | "file": "src/lib/Menu.js", | 213 | "file": "src/lib/Menu.js", |
214 | "start": { | 214 | "start": { |
215 | "line": 74, | 215 | "line": 76, |
216 | "column": 11 | 216 | "column": 11 |
217 | }, | 217 | }, |
218 | "end": { | 218 | "end": { |
219 | "line": 77, | 219 | "line": 79, |
220 | "column": 3 | 220 | "column": 3 |
221 | } | 221 | } |
222 | }, | 222 | }, |
@@ -225,11 +225,11 @@ | |||
225 | "defaultMessage": "!!!Enter Full Screen", | 225 | "defaultMessage": "!!!Enter Full Screen", |
226 | "file": "src/lib/Menu.js", | 226 | "file": "src/lib/Menu.js", |
227 | "start": { | 227 | "start": { |
228 | "line": 78, | 228 | "line": 80, |
229 | "column": 19 | 229 | "column": 19 |
230 | }, | 230 | }, |
231 | "end": { | 231 | "end": { |
232 | "line": 81, | 232 | "line": 83, |
233 | "column": 3 | 233 | "column": 3 |
234 | } | 234 | } |
235 | }, | 235 | }, |
@@ -238,11 +238,11 @@ | |||
238 | "defaultMessage": "!!!Exit Full Screen", | 238 | "defaultMessage": "!!!Exit Full Screen", |
239 | "file": "src/lib/Menu.js", | 239 | "file": "src/lib/Menu.js", |
240 | "start": { | 240 | "start": { |
241 | "line": 82, | 241 | "line": 84, |
242 | "column": 18 | 242 | "column": 18 |
243 | }, | 243 | }, |
244 | "end": { | 244 | "end": { |
245 | "line": 85, | 245 | "line": 87, |
246 | "column": 3 | 246 | "column": 3 |
247 | } | 247 | } |
248 | }, | 248 | }, |
@@ -251,11 +251,11 @@ | |||
251 | "defaultMessage": "!!!Toggle Full Screen", | 251 | "defaultMessage": "!!!Toggle Full Screen", |
252 | "file": "src/lib/Menu.js", | 252 | "file": "src/lib/Menu.js", |
253 | "start": { | 253 | "start": { |
254 | "line": 86, | 254 | "line": 88, |
255 | "column": 20 | 255 | "column": 20 |
256 | }, | 256 | }, |
257 | "end": { | 257 | "end": { |
258 | "line": 89, | 258 | "line": 91, |
259 | "column": 3 | 259 | "column": 3 |
260 | } | 260 | } |
261 | }, | 261 | }, |
@@ -264,11 +264,11 @@ | |||
264 | "defaultMessage": "!!!Toggle Developer Tools", | 264 | "defaultMessage": "!!!Toggle Developer Tools", |
265 | "file": "src/lib/Menu.js", | 265 | "file": "src/lib/Menu.js", |
266 | "start": { | 266 | "start": { |
267 | "line": 90, | 267 | "line": 92, |
268 | "column": 18 | 268 | "column": 18 |
269 | }, | 269 | }, |
270 | "end": { | 270 | "end": { |
271 | "line": 93, | 271 | "line": 95, |
272 | "column": 3 | 272 | "column": 3 |
273 | } | 273 | } |
274 | }, | 274 | }, |
@@ -277,11 +277,11 @@ | |||
277 | "defaultMessage": "!!!Toggle Service Developer Tools", | 277 | "defaultMessage": "!!!Toggle Service Developer Tools", |
278 | "file": "src/lib/Menu.js", | 278 | "file": "src/lib/Menu.js", |
279 | "start": { | 279 | "start": { |
280 | "line": 94, | 280 | "line": 96, |
281 | "column": 25 | 281 | "column": 25 |
282 | }, | 282 | }, |
283 | "end": { | 283 | "end": { |
284 | "line": 97, | 284 | "line": 99, |
285 | "column": 3 | 285 | "column": 3 |
286 | } | 286 | } |
287 | }, | 287 | }, |
@@ -290,11 +290,11 @@ | |||
290 | "defaultMessage": "!!!Reload Service", | 290 | "defaultMessage": "!!!Reload Service", |
291 | "file": "src/lib/Menu.js", | 291 | "file": "src/lib/Menu.js", |
292 | "start": { | 292 | "start": { |
293 | "line": 98, | 293 | "line": 100, |
294 | "column": 17 | 294 | "column": 17 |
295 | }, | 295 | }, |
296 | "end": { | 296 | "end": { |
297 | "line": 101, | 297 | "line": 103, |
298 | "column": 3 | 298 | "column": 3 |
299 | } | 299 | } |
300 | }, | 300 | }, |
@@ -303,11 +303,11 @@ | |||
303 | "defaultMessage": "!!!Reload Franz", | 303 | "defaultMessage": "!!!Reload Franz", |
304 | "file": "src/lib/Menu.js", | 304 | "file": "src/lib/Menu.js", |
305 | "start": { | 305 | "start": { |
306 | "line": 102, | 306 | "line": 104, |
307 | "column": 15 | 307 | "column": 15 |
308 | }, | 308 | }, |
309 | "end": { | 309 | "end": { |
310 | "line": 105, | 310 | "line": 107, |
311 | "column": 3 | 311 | "column": 3 |
312 | } | 312 | } |
313 | }, | 313 | }, |
@@ -316,11 +316,11 @@ | |||
316 | "defaultMessage": "!!!Minimize", | 316 | "defaultMessage": "!!!Minimize", |
317 | "file": "src/lib/Menu.js", | 317 | "file": "src/lib/Menu.js", |
318 | "start": { | 318 | "start": { |
319 | "line": 106, | 319 | "line": 108, |
320 | "column": 12 | 320 | "column": 12 |
321 | }, | 321 | }, |
322 | "end": { | 322 | "end": { |
323 | "line": 109, | 323 | "line": 111, |
324 | "column": 3 | 324 | "column": 3 |
325 | } | 325 | } |
326 | }, | 326 | }, |
@@ -329,11 +329,11 @@ | |||
329 | "defaultMessage": "!!!Close", | 329 | "defaultMessage": "!!!Close", |
330 | "file": "src/lib/Menu.js", | 330 | "file": "src/lib/Menu.js", |
331 | "start": { | 331 | "start": { |
332 | "line": 110, | 332 | "line": 112, |
333 | "column": 9 | 333 | "column": 9 |
334 | }, | 334 | }, |
335 | "end": { | 335 | "end": { |
336 | "line": 113, | 336 | "line": 115, |
337 | "column": 3 | 337 | "column": 3 |
338 | } | 338 | } |
339 | }, | 339 | }, |
@@ -342,11 +342,11 @@ | |||
342 | "defaultMessage": "!!!Learn More", | 342 | "defaultMessage": "!!!Learn More", |
343 | "file": "src/lib/Menu.js", | 343 | "file": "src/lib/Menu.js", |
344 | "start": { | 344 | "start": { |
345 | "line": 114, | 345 | "line": 116, |
346 | "column": 13 | 346 | "column": 13 |
347 | }, | 347 | }, |
348 | "end": { | 348 | "end": { |
349 | "line": 117, | 349 | "line": 119, |
350 | "column": 3 | 350 | "column": 3 |
351 | } | 351 | } |
352 | }, | 352 | }, |
@@ -355,11 +355,11 @@ | |||
355 | "defaultMessage": "!!!Changelog", | 355 | "defaultMessage": "!!!Changelog", |
356 | "file": "src/lib/Menu.js", | 356 | "file": "src/lib/Menu.js", |
357 | "start": { | 357 | "start": { |
358 | "line": 118, | 358 | "line": 120, |
359 | "column": 13 | 359 | "column": 13 |
360 | }, | 360 | }, |
361 | "end": { | 361 | "end": { |
362 | "line": 121, | 362 | "line": 123, |
363 | "column": 3 | 363 | "column": 3 |
364 | } | 364 | } |
365 | }, | 365 | }, |
@@ -368,11 +368,11 @@ | |||
368 | "defaultMessage": "!!!Support", | 368 | "defaultMessage": "!!!Support", |
369 | "file": "src/lib/Menu.js", | 369 | "file": "src/lib/Menu.js", |
370 | "start": { | 370 | "start": { |
371 | "line": 122, | 371 | "line": 124, |
372 | "column": 11 | 372 | "column": 11 |
373 | }, | 373 | }, |
374 | "end": { | 374 | "end": { |
375 | "line": 125, | 375 | "line": 127, |
376 | "column": 3 | 376 | "column": 3 |
377 | } | 377 | } |
378 | }, | 378 | }, |
@@ -381,11 +381,11 @@ | |||
381 | "defaultMessage": "!!!Terms of Service", | 381 | "defaultMessage": "!!!Terms of Service", |
382 | "file": "src/lib/Menu.js", | 382 | "file": "src/lib/Menu.js", |
383 | "start": { | 383 | "start": { |
384 | "line": 126, | 384 | "line": 128, |
385 | "column": 7 | 385 | "column": 7 |
386 | }, | 386 | }, |
387 | "end": { | 387 | "end": { |
388 | "line": 129, | 388 | "line": 131, |
389 | "column": 3 | 389 | "column": 3 |
390 | } | 390 | } |
391 | }, | 391 | }, |
@@ -394,11 +394,11 @@ | |||
394 | "defaultMessage": "!!!Privacy Statement", | 394 | "defaultMessage": "!!!Privacy Statement", |
395 | "file": "src/lib/Menu.js", | 395 | "file": "src/lib/Menu.js", |
396 | "start": { | 396 | "start": { |
397 | "line": 130, | 397 | "line": 132, |
398 | "column": 11 | 398 | "column": 11 |
399 | }, | 399 | }, |
400 | "end": { | 400 | "end": { |
401 | "line": 133, | 401 | "line": 135, |
402 | "column": 3 | 402 | "column": 3 |
403 | } | 403 | } |
404 | }, | 404 | }, |
@@ -407,11 +407,11 @@ | |||
407 | "defaultMessage": "!!!File", | 407 | "defaultMessage": "!!!File", |
408 | "file": "src/lib/Menu.js", | 408 | "file": "src/lib/Menu.js", |
409 | "start": { | 409 | "start": { |
410 | "line": 134, | 410 | "line": 136, |
411 | "column": 8 | 411 | "column": 8 |
412 | }, | 412 | }, |
413 | "end": { | 413 | "end": { |
414 | "line": 137, | 414 | "line": 139, |
415 | "column": 3 | 415 | "column": 3 |
416 | } | 416 | } |
417 | }, | 417 | }, |
@@ -420,11 +420,11 @@ | |||
420 | "defaultMessage": "!!!View", | 420 | "defaultMessage": "!!!View", |
421 | "file": "src/lib/Menu.js", | 421 | "file": "src/lib/Menu.js", |
422 | "start": { | 422 | "start": { |
423 | "line": 138, | 423 | "line": 140, |
424 | "column": 8 | 424 | "column": 8 |
425 | }, | 425 | }, |
426 | "end": { | 426 | "end": { |
427 | "line": 141, | 427 | "line": 143, |
428 | "column": 3 | 428 | "column": 3 |
429 | } | 429 | } |
430 | }, | 430 | }, |
@@ -433,11 +433,11 @@ | |||
433 | "defaultMessage": "!!!Services", | 433 | "defaultMessage": "!!!Services", |
434 | "file": "src/lib/Menu.js", | 434 | "file": "src/lib/Menu.js", |
435 | "start": { | 435 | "start": { |
436 | "line": 142, | 436 | "line": 144, |
437 | "column": 12 | 437 | "column": 12 |
438 | }, | 438 | }, |
439 | "end": { | 439 | "end": { |
440 | "line": 145, | 440 | "line": 147, |
441 | "column": 3 | 441 | "column": 3 |
442 | } | 442 | } |
443 | }, | 443 | }, |
@@ -446,11 +446,11 @@ | |||
446 | "defaultMessage": "!!!Window", | 446 | "defaultMessage": "!!!Window", |
447 | "file": "src/lib/Menu.js", | 447 | "file": "src/lib/Menu.js", |
448 | "start": { | 448 | "start": { |
449 | "line": 146, | 449 | "line": 148, |
450 | "column": 10 | 450 | "column": 10 |
451 | }, | 451 | }, |
452 | "end": { | 452 | "end": { |
453 | "line": 149, | 453 | "line": 151, |
454 | "column": 3 | 454 | "column": 3 |
455 | } | 455 | } |
456 | }, | 456 | }, |
@@ -459,11 +459,11 @@ | |||
459 | "defaultMessage": "!!!Help", | 459 | "defaultMessage": "!!!Help", |
460 | "file": "src/lib/Menu.js", | 460 | "file": "src/lib/Menu.js", |
461 | "start": { | 461 | "start": { |
462 | "line": 150, | 462 | "line": 152, |
463 | "column": 8 | 463 | "column": 8 |
464 | }, | 464 | }, |
465 | "end": { | 465 | "end": { |
466 | "line": 153, | 466 | "line": 155, |
467 | "column": 3 | 467 | "column": 3 |
468 | } | 468 | } |
469 | }, | 469 | }, |
@@ -472,11 +472,11 @@ | |||
472 | "defaultMessage": "!!!About Franz", | 472 | "defaultMessage": "!!!About Franz", |
473 | "file": "src/lib/Menu.js", | 473 | "file": "src/lib/Menu.js", |
474 | "start": { | 474 | "start": { |
475 | "line": 154, | 475 | "line": 156, |
476 | "column": 9 | 476 | "column": 9 |
477 | }, | 477 | }, |
478 | "end": { | 478 | "end": { |
479 | "line": 157, | 479 | "line": 159, |
480 | "column": 3 | 480 | "column": 3 |
481 | } | 481 | } |
482 | }, | 482 | }, |
@@ -485,11 +485,11 @@ | |||
485 | "defaultMessage": "!!!Settings", | 485 | "defaultMessage": "!!!Settings", |
486 | "file": "src/lib/Menu.js", | 486 | "file": "src/lib/Menu.js", |
487 | "start": { | 487 | "start": { |
488 | "line": 158, | 488 | "line": 160, |
489 | "column": 12 | 489 | "column": 12 |
490 | }, | 490 | }, |
491 | "end": { | 491 | "end": { |
492 | "line": 161, | 492 | "line": 163, |
493 | "column": 3 | 493 | "column": 3 |
494 | } | 494 | } |
495 | }, | 495 | }, |
@@ -498,11 +498,11 @@ | |||
498 | "defaultMessage": "!!!Hide", | 498 | "defaultMessage": "!!!Hide", |
499 | "file": "src/lib/Menu.js", | 499 | "file": "src/lib/Menu.js", |
500 | "start": { | 500 | "start": { |
501 | "line": 162, | 501 | "line": 164, |
502 | "column": 8 | 502 | "column": 8 |
503 | }, | 503 | }, |
504 | "end": { | 504 | "end": { |
505 | "line": 165, | 505 | "line": 167, |
506 | "column": 3 | 506 | "column": 3 |
507 | } | 507 | } |
508 | }, | 508 | }, |
@@ -511,11 +511,11 @@ | |||
511 | "defaultMessage": "!!!Hide Others", | 511 | "defaultMessage": "!!!Hide Others", |
512 | "file": "src/lib/Menu.js", | 512 | "file": "src/lib/Menu.js", |
513 | "start": { | 513 | "start": { |
514 | "line": 166, | 514 | "line": 168, |
515 | "column": 14 | 515 | "column": 14 |
516 | }, | 516 | }, |
517 | "end": { | 517 | "end": { |
518 | "line": 169, | 518 | "line": 171, |
519 | "column": 3 | 519 | "column": 3 |
520 | } | 520 | } |
521 | }, | 521 | }, |
@@ -524,11 +524,11 @@ | |||
524 | "defaultMessage": "!!!Unhide", | 524 | "defaultMessage": "!!!Unhide", |
525 | "file": "src/lib/Menu.js", | 525 | "file": "src/lib/Menu.js", |
526 | "start": { | 526 | "start": { |
527 | "line": 170, | 527 | "line": 172, |
528 | "column": 10 | 528 | "column": 10 |
529 | }, | 529 | }, |
530 | "end": { | 530 | "end": { |
531 | "line": 173, | 531 | "line": 175, |
532 | "column": 3 | 532 | "column": 3 |
533 | } | 533 | } |
534 | }, | 534 | }, |
@@ -537,11 +537,11 @@ | |||
537 | "defaultMessage": "!!!Quit", | 537 | "defaultMessage": "!!!Quit", |
538 | "file": "src/lib/Menu.js", | 538 | "file": "src/lib/Menu.js", |
539 | "start": { | 539 | "start": { |
540 | "line": 174, | 540 | "line": 176, |
541 | "column": 8 | 541 | "column": 8 |
542 | }, | 542 | }, |
543 | "end": { | 543 | "end": { |
544 | "line": 177, | 544 | "line": 179, |
545 | "column": 3 | 545 | "column": 3 |
546 | } | 546 | } |
547 | }, | 547 | }, |
@@ -550,11 +550,24 @@ | |||
550 | "defaultMessage": "!!!Add New Service...", | 550 | "defaultMessage": "!!!Add New Service...", |
551 | "file": "src/lib/Menu.js", | 551 | "file": "src/lib/Menu.js", |
552 | "start": { | 552 | "start": { |
553 | "line": 178, | 553 | "line": 180, |
554 | "column": 17 | 554 | "column": 17 |
555 | }, | 555 | }, |
556 | "end": { | 556 | "end": { |
557 | "line": 181, | 557 | "line": 183, |
558 | "column": 3 | ||
559 | } | ||
560 | }, | ||
561 | { | ||
562 | "id": "menu.workspaces.addNewWorkspace", | ||
563 | "defaultMessage": "!!!Add New Workspace...", | ||
564 | "file": "src/lib/Menu.js", | ||
565 | "start": { | ||
566 | "line": 184, | ||
567 | "column": 19 | ||
568 | }, | ||
569 | "end": { | ||
570 | "line": 187, | ||
558 | "column": 3 | 571 | "column": 3 |
559 | } | 572 | } |
560 | }, | 573 | }, |
@@ -563,11 +576,11 @@ | |||
563 | "defaultMessage": "!!!Activate next service...", | 576 | "defaultMessage": "!!!Activate next service...", |
564 | "file": "src/lib/Menu.js", | 577 | "file": "src/lib/Menu.js", |
565 | "start": { | 578 | "start": { |
566 | "line": 182, | 579 | "line": 188, |
567 | "column": 23 | 580 | "column": 23 |
568 | }, | 581 | }, |
569 | "end": { | 582 | "end": { |
570 | "line": 185, | 583 | "line": 191, |
571 | "column": 3 | 584 | "column": 3 |
572 | } | 585 | } |
573 | }, | 586 | }, |
@@ -576,11 +589,11 @@ | |||
576 | "defaultMessage": "!!!Activate previous service...", | 589 | "defaultMessage": "!!!Activate previous service...", |
577 | "file": "src/lib/Menu.js", | 590 | "file": "src/lib/Menu.js", |
578 | "start": { | 591 | "start": { |
579 | "line": 186, | 592 | "line": 192, |
580 | "column": 27 | 593 | "column": 27 |
581 | }, | 594 | }, |
582 | "end": { | 595 | "end": { |
583 | "line": 189, | 596 | "line": 195, |
584 | "column": 3 | 597 | "column": 3 |
585 | } | 598 | } |
586 | }, | 599 | }, |
@@ -589,11 +602,11 @@ | |||
589 | "defaultMessage": "!!!Disable notifications & audio", | 602 | "defaultMessage": "!!!Disable notifications & audio", |
590 | "file": "src/lib/Menu.js", | 603 | "file": "src/lib/Menu.js", |
591 | "start": { | 604 | "start": { |
592 | "line": 190, | 605 | "line": 196, |
593 | "column": 11 | 606 | "column": 11 |
594 | }, | 607 | }, |
595 | "end": { | 608 | "end": { |
596 | "line": 193, | 609 | "line": 199, |
597 | "column": 3 | 610 | "column": 3 |
598 | } | 611 | } |
599 | }, | 612 | }, |
@@ -602,11 +615,37 @@ | |||
602 | "defaultMessage": "!!!Enable notifications & audio", | 615 | "defaultMessage": "!!!Enable notifications & audio", |
603 | "file": "src/lib/Menu.js", | 616 | "file": "src/lib/Menu.js", |
604 | "start": { | 617 | "start": { |
605 | "line": 194, | 618 | "line": 200, |
606 | "column": 13 | 619 | "column": 13 |
607 | }, | 620 | }, |
608 | "end": { | 621 | "end": { |
609 | "line": 197, | 622 | "line": 203, |
623 | "column": 3 | ||
624 | } | ||
625 | }, | ||
626 | { | ||
627 | "id": "menu.workspaces", | ||
628 | "defaultMessage": "!!!Workspaces", | ||
629 | "file": "src/lib/Menu.js", | ||
630 | "start": { | ||
631 | "line": 204, | ||
632 | "column": 14 | ||
633 | }, | ||
634 | "end": { | ||
635 | "line": 207, | ||
636 | "column": 3 | ||
637 | } | ||
638 | }, | ||
639 | { | ||
640 | "id": "menu.workspaces.defaultWorkspace", | ||
641 | "defaultMessage": "!!!Default", | ||
642 | "file": "src/lib/Menu.js", | ||
643 | "start": { | ||
644 | "line": 208, | ||
645 | "column": 20 | ||
646 | }, | ||
647 | "end": { | ||
648 | "line": 211, | ||
610 | "column": 3 | 649 | "column": 3 |
611 | } | 650 | } |
612 | } | 651 | } |
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 7a60c448f..b21a62b4d 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -3,6 +3,8 @@ import { observable, autorun } from 'mobx'; | |||
3 | import { defineMessages } from 'react-intl'; | 3 | import { defineMessages } from 'react-intl'; |
4 | 4 | ||
5 | import { isMac, ctrlKey, cmdKey } from '../environment'; | 5 | import { isMac, ctrlKey, cmdKey } from '../environment'; |
6 | import { workspacesState } from '../features/workspaces/state'; | ||
7 | import workspaceActions from '../features/workspaces/actions'; | ||
6 | 8 | ||
7 | const { app, Menu, dialog } = remote; | 9 | const { app, Menu, dialog } = remote; |
8 | 10 | ||
@@ -179,6 +181,10 @@ const menuItems = defineMessages({ | |||
179 | id: 'menu.services.addNewService', | 181 | id: 'menu.services.addNewService', |
180 | defaultMessage: '!!!Add New Service...', | 182 | defaultMessage: '!!!Add New Service...', |
181 | }, | 183 | }, |
184 | addNewWorkspace: { | ||
185 | id: 'menu.workspaces.addNewWorkspace', | ||
186 | defaultMessage: '!!!Add New Workspace...', | ||
187 | }, | ||
182 | activateNextService: { | 188 | activateNextService: { |
183 | id: 'menu.services.setNextServiceActive', | 189 | id: 'menu.services.setNextServiceActive', |
184 | defaultMessage: '!!!Activate next service...', | 190 | defaultMessage: '!!!Activate next service...', |
@@ -195,6 +201,14 @@ const menuItems = defineMessages({ | |||
195 | id: 'sidebar.unmuteApp', | 201 | id: 'sidebar.unmuteApp', |
196 | defaultMessage: '!!!Enable notifications & audio', | 202 | defaultMessage: '!!!Enable notifications & audio', |
197 | }, | 203 | }, |
204 | workspaces: { | ||
205 | id: 'menu.workspaces', | ||
206 | defaultMessage: '!!!Workspaces', | ||
207 | }, | ||
208 | defaultWorkspace: { | ||
209 | id: 'menu.workspaces.defaultWorkspace', | ||
210 | defaultMessage: '!!!Default', | ||
211 | }, | ||
198 | }); | 212 | }); |
199 | 213 | ||
200 | function getActiveWebview() { | 214 | function getActiveWebview() { |
@@ -298,6 +312,10 @@ const _templateFactory = intl => [ | |||
298 | submenu: [], | 312 | submenu: [], |
299 | }, | 313 | }, |
300 | { | 314 | { |
315 | label: intl.formatMessage(menuItems.workspaces), | ||
316 | submenu: [], | ||
317 | }, | ||
318 | { | ||
301 | label: intl.formatMessage(menuItems.window), | 319 | label: intl.formatMessage(menuItems.window), |
302 | role: 'window', | 320 | role: 'window', |
303 | submenu: [ | 321 | submenu: [ |
@@ -537,6 +555,7 @@ export default class FranzMenu { | |||
537 | _build() { | 555 | _build() { |
538 | // need to clone object so we don't modify computed (cached) object | 556 | // need to clone object so we don't modify computed (cached) object |
539 | const serviceTpl = Object.assign([], this.serviceTpl()); | 557 | const serviceTpl = Object.assign([], this.serviceTpl()); |
558 | const workspacesMenu = Object.assign([], this.workspacesMenu()); | ||
540 | 559 | ||
541 | if (window.franz === undefined) { | 560 | if (window.franz === undefined) { |
542 | return; | 561 | return; |
@@ -669,7 +688,7 @@ export default class FranzMenu { | |||
669 | }, | 688 | }, |
670 | ); | 689 | ); |
671 | 690 | ||
672 | tpl[4].submenu.unshift(about, { | 691 | tpl[5].submenu.unshift(about, { |
673 | type: 'separator', | 692 | type: 'separator', |
674 | }); | 693 | }); |
675 | } else { | 694 | } else { |
@@ -704,6 +723,8 @@ export default class FranzMenu { | |||
704 | tpl[3].submenu = serviceTpl; | 723 | tpl[3].submenu = serviceTpl; |
705 | } | 724 | } |
706 | 725 | ||
726 | tpl[4].submenu = workspacesMenu; | ||
727 | |||
707 | this.currentTemplate = tpl; | 728 | this.currentTemplate = tpl; |
708 | const menu = Menu.buildFromTemplate(tpl); | 729 | const menu = Menu.buildFromTemplate(tpl); |
709 | Menu.setApplicationMenu(menu); | 730 | Menu.setApplicationMenu(menu); |
@@ -754,6 +775,50 @@ export default class FranzMenu { | |||
754 | return menu; | 775 | return menu; |
755 | } | 776 | } |
756 | 777 | ||
778 | workspacesMenu() { | ||
779 | const { workspaces, activeWorkspace } = workspacesState; | ||
780 | const { intl } = window.franz; | ||
781 | const menu = []; | ||
782 | |||
783 | // Add new workspace item: | ||
784 | menu.push({ | ||
785 | label: intl.formatMessage(menuItems.addNewWorkspace), | ||
786 | accelerator: `${cmdKey}+Shift+N`, | ||
787 | click: () => { | ||
788 | this.actions.ui.openSettings({ path: 'workspaces' }); | ||
789 | }, | ||
790 | enabled: this.stores.user.isLoggedIn, | ||
791 | }, { | ||
792 | type: 'separator', | ||
793 | }); | ||
794 | |||
795 | // Default workspace | ||
796 | menu.push({ | ||
797 | label: intl.formatMessage(menuItems.defaultWorkspace), | ||
798 | accelerator: `${cmdKey}+Alt+1`, | ||
799 | type: 'radio', | ||
800 | checked: !activeWorkspace, | ||
801 | click: () => { | ||
802 | workspaceActions.deactivate(); | ||
803 | }, | ||
804 | }); | ||
805 | |||
806 | // Workspace items | ||
807 | if (this.stores.user.isLoggedIn) { | ||
808 | workspaces.forEach((workspace, i) => menu.push({ | ||
809 | label: workspace.name, | ||
810 | accelerator: i < 9 ? `${cmdKey}+Alt+${i + 2}` : null, | ||
811 | type: 'radio', | ||
812 | checked: activeWorkspace ? workspace.id === activeWorkspace.id : false, | ||
813 | click: () => { | ||
814 | workspaceActions.activate({ workspace }); | ||
815 | }, | ||
816 | })); | ||
817 | } | ||
818 | |||
819 | return menu; | ||
820 | } | ||
821 | |||
757 | _getServiceName(service) { | 822 | _getServiceName(service) { |
758 | if (service.name) { | 823 | if (service.name) { |
759 | return service.name; | 824 | return service.name; |
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index d2842083c..b7130904b 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js | |||
@@ -7,6 +7,7 @@ import delayApp from '../features/delayApp'; | |||
7 | import spellchecker from '../features/spellchecker'; | 7 | import spellchecker from '../features/spellchecker'; |
8 | import serviceProxy from '../features/serviceProxy'; | 8 | import serviceProxy from '../features/serviceProxy'; |
9 | import basicAuth from '../features/basicAuth'; | 9 | import basicAuth from '../features/basicAuth'; |
10 | import workspaces from '../features/workspaces'; | ||
10 | import shareFranz from '../features/shareFranz'; | 11 | import shareFranz from '../features/shareFranz'; |
11 | 12 | ||
12 | import { DEFAULT_FEATURES_CONFIG } from '../config'; | 13 | import { DEFAULT_FEATURES_CONFIG } from '../config'; |
@@ -38,7 +39,7 @@ export default class FeaturesStore extends Store { | |||
38 | 39 | ||
39 | @computed get features() { | 40 | @computed get features() { |
40 | if (this.stores.user.isLoggedIn) { | 41 | if (this.stores.user.isLoggedIn) { |
41 | return this.featuresRequest.execute().result || DEFAULT_FEATURES_CONFIG; | 42 | return Object.assign({}, DEFAULT_FEATURES_CONFIG, this.featuresRequest.execute().result); |
42 | } | 43 | } |
43 | 44 | ||
44 | return DEFAULT_FEATURES_CONFIG; | 45 | return DEFAULT_FEATURES_CONFIG; |
@@ -57,6 +58,7 @@ export default class FeaturesStore extends Store { | |||
57 | spellchecker(this.stores, this.actions); | 58 | spellchecker(this.stores, this.actions); |
58 | serviceProxy(this.stores, this.actions); | 59 | serviceProxy(this.stores, this.actions); |
59 | basicAuth(this.stores, this.actions); | 60 | basicAuth(this.stores, this.actions); |
61 | workspaces(this.stores, this.actions); | ||
60 | shareFranz(this.stores, this.actions); | 62 | shareFranz(this.stores, this.actions); |
61 | } | 63 | } |
62 | } | 64 | } |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 69e616f0c..cc8eed65b 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -12,6 +12,7 @@ import Request from './lib/Request'; | |||
12 | import CachedRequest from './lib/CachedRequest'; | 12 | import CachedRequest from './lib/CachedRequest'; |
13 | import { matchRoute } from '../helpers/routing-helpers'; | 13 | import { matchRoute } from '../helpers/routing-helpers'; |
14 | import { gaEvent } from '../lib/analytics'; | 14 | import { gaEvent } from '../lib/analytics'; |
15 | import { filterServicesByActiveWorkspace, getActiveWorkspaceServices } from '../features/workspaces'; | ||
15 | 16 | ||
16 | const debug = require('debug')('Franz:ServiceStore'); | 17 | const debug = require('debug')('Franz:ServiceStore'); |
17 | 18 | ||
@@ -99,7 +100,6 @@ export default class ServicesStore extends Store { | |||
99 | return observable(services.slice().slice().sort((a, b) => a.order - b.order)); | 100 | return observable(services.slice().slice().sort((a, b) => a.order - b.order)); |
100 | } | 101 | } |
101 | } | 102 | } |
102 | |||
103 | return []; | 103 | return []; |
104 | } | 104 | } |
105 | 105 | ||
@@ -108,13 +108,16 @@ export default class ServicesStore extends Store { | |||
108 | } | 108 | } |
109 | 109 | ||
110 | @computed get allDisplayed() { | 110 | @computed get allDisplayed() { |
111 | return this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled; | 111 | const services = this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled; |
112 | return filterServicesByActiveWorkspace(services); | ||
112 | } | 113 | } |
113 | 114 | ||
114 | // This is just used to avoid unnecessary rerendering of resource-heavy webviews | 115 | // This is just used to avoid unnecessary rerendering of resource-heavy webviews |
115 | @computed get allDisplayedUnordered() { | 116 | @computed get allDisplayedUnordered() { |
117 | const { showDisabledServices } = this.stores.settings.all.app; | ||
116 | const services = this.allServicesRequest.execute().result || []; | 118 | const services = this.allServicesRequest.execute().result || []; |
117 | return this.stores.settings.all.app.showDisabledServices ? services : services.filter(service => service.isEnabled); | 119 | const filteredServices = showDisabledServices ? services : services.filter(service => service.isEnabled); |
120 | return getActiveWorkspaceServices(filteredServices); | ||
118 | } | 121 | } |
119 | 122 | ||
120 | @computed get filtered() { | 123 | @computed get filtered() { |
diff --git a/src/styles/main.scss b/src/styles/main.scss index 784a04d3d..9ba7f5827 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss | |||
@@ -31,6 +31,9 @@ $mdi-font-path: '../node_modules/mdi/fonts'; | |||
31 | @import './invite.scss'; | 31 | @import './invite.scss'; |
32 | @import './title-bar.scss'; | 32 | @import './title-bar.scss'; |
33 | 33 | ||
34 | // Workspaces legacy css | ||
35 | @import '../features/workspaces/styles/workspaces-table'; | ||
36 | |||
34 | // form | 37 | // form |
35 | @import './input.scss'; | 38 | @import './input.scss'; |
36 | @import './radio.scss'; | 39 | @import './radio.scss'; |