diff options
Diffstat (limited to 'language-web')
-rw-r--r-- | language-web/package-lock.json | 784 | ||||
-rw-r--r-- | language-web/package.json | 5 | ||||
-rw-r--r-- | language-web/src/main/css/index.scss | 64 | ||||
-rw-r--r-- | language-web/src/main/js/App.jsx | 73 | ||||
-rw-r--r-- | language-web/src/main/js/Navbar.jsx | 37 | ||||
-rw-r--r-- | language-web/src/main/js/RootStore.jsx | 30 | ||||
-rw-r--r-- | language-web/src/main/js/components/XtextCodeMirror.jsx | 32 | ||||
-rw-r--r-- | language-web/src/main/js/editor/Editor.jsx | 50 | ||||
-rw-r--r-- | language-web/src/main/js/editor/EditorButtons.jsx | 27 | ||||
-rw-r--r-- | language-web/src/main/js/editor/EditorStore.jsx | 75 | ||||
-rw-r--r-- | language-web/src/main/js/index.jsx | 21 | ||||
-rw-r--r-- | language-web/webpack.config.js | 27 |
12 files changed, 1118 insertions, 107 deletions
diff --git a/language-web/package-lock.json b/language-web/package-lock.json index 2b23e6aa..b237bfa2 100644 --- a/language-web/package-lock.json +++ b/language-web/package-lock.json | |||
@@ -8,8 +8,12 @@ | |||
8 | "version": "1.0.0", | 8 | "version": "1.0.0", |
9 | "license": "EPL-2.0", | 9 | "license": "EPL-2.0", |
10 | "dependencies": { | 10 | "dependencies": { |
11 | "@material-ui/core": "^4.11.4", | ||
12 | "@material-ui/icons": "^4.11.2", | ||
11 | "codemirror": "^5.62.0", | 13 | "codemirror": "^5.62.0", |
12 | "jquery": "^3.6.0", | 14 | "jquery": "^3.6.0", |
15 | "mobx": "^6.3.2", | ||
16 | "mobx-react-lite": "^3.2.0", | ||
13 | "react": "^16.14.0", | 17 | "react": "^16.14.0", |
14 | "react-codemirror2": "^7.2.1", | 18 | "react-codemirror2": "^7.2.1", |
15 | "react-dom": "^16.14.0" | 19 | "react-dom": "^16.14.0" |
@@ -28,6 +32,7 @@ | |||
28 | "sass": "^1.35.1", | 32 | "sass": "^1.35.1", |
29 | "sass-loader": "^12.1.0", | 33 | "sass-loader": "^12.1.0", |
30 | "style-loader": "^3.0.0", | 34 | "style-loader": "^3.0.0", |
35 | "url-loader": "^4.1.1", | ||
31 | "webpack": "^5.41.0", | 36 | "webpack": "^5.41.0", |
32 | "webpack-cli": "^4.7.2", | 37 | "webpack-cli": "^4.7.2", |
33 | "webpack-dev-server": "^3.11.2", | 38 | "webpack-dev-server": "^3.11.2", |
@@ -1602,7 +1607,6 @@ | |||
1602 | "version": "7.14.6", | 1607 | "version": "7.14.6", |
1603 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", | 1608 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", |
1604 | "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", | 1609 | "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", |
1605 | "dev": true, | ||
1606 | "dependencies": { | 1610 | "dependencies": { |
1607 | "regenerator-runtime": "^0.13.4" | 1611 | "regenerator-runtime": "^0.13.4" |
1608 | }, | 1612 | }, |
@@ -1666,6 +1670,167 @@ | |||
1666 | "node": ">=10.0.0" | 1670 | "node": ">=10.0.0" |
1667 | } | 1671 | } |
1668 | }, | 1672 | }, |
1673 | "node_modules/@emotion/hash": { | ||
1674 | "version": "0.8.0", | ||
1675 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", | ||
1676 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" | ||
1677 | }, | ||
1678 | "node_modules/@material-ui/core": { | ||
1679 | "version": "4.11.4", | ||
1680 | "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.4.tgz", | ||
1681 | "integrity": "sha512-oqb+lJ2Dl9HXI9orc6/aN8ZIAMkeThufA5iZELf2LQeBn2NtjVilF5D2w7e9RpntAzDb4jK5DsVhkfOvFY/8fg==", | ||
1682 | "dependencies": { | ||
1683 | "@babel/runtime": "^7.4.4", | ||
1684 | "@material-ui/styles": "^4.11.4", | ||
1685 | "@material-ui/system": "^4.11.3", | ||
1686 | "@material-ui/types": "5.1.0", | ||
1687 | "@material-ui/utils": "^4.11.2", | ||
1688 | "@types/react-transition-group": "^4.2.0", | ||
1689 | "clsx": "^1.0.4", | ||
1690 | "hoist-non-react-statics": "^3.3.2", | ||
1691 | "popper.js": "1.16.1-lts", | ||
1692 | "prop-types": "^15.7.2", | ||
1693 | "react-is": "^16.8.0 || ^17.0.0", | ||
1694 | "react-transition-group": "^4.4.0" | ||
1695 | }, | ||
1696 | "engines": { | ||
1697 | "node": ">=8.0.0" | ||
1698 | }, | ||
1699 | "funding": { | ||
1700 | "type": "opencollective", | ||
1701 | "url": "https://opencollective.com/material-ui" | ||
1702 | }, | ||
1703 | "peerDependencies": { | ||
1704 | "@types/react": "^16.8.6 || ^17.0.0", | ||
1705 | "react": "^16.8.0 || ^17.0.0", | ||
1706 | "react-dom": "^16.8.0 || ^17.0.0" | ||
1707 | }, | ||
1708 | "peerDependenciesMeta": { | ||
1709 | "@types/react": { | ||
1710 | "optional": true | ||
1711 | } | ||
1712 | } | ||
1713 | }, | ||
1714 | "node_modules/@material-ui/icons": { | ||
1715 | "version": "4.11.2", | ||
1716 | "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", | ||
1717 | "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", | ||
1718 | "dependencies": { | ||
1719 | "@babel/runtime": "^7.4.4" | ||
1720 | }, | ||
1721 | "engines": { | ||
1722 | "node": ">=8.0.0" | ||
1723 | }, | ||
1724 | "peerDependencies": { | ||
1725 | "@material-ui/core": "^4.0.0", | ||
1726 | "@types/react": "^16.8.6 || ^17.0.0", | ||
1727 | "react": "^16.8.0 || ^17.0.0", | ||
1728 | "react-dom": "^16.8.0 || ^17.0.0" | ||
1729 | }, | ||
1730 | "peerDependenciesMeta": { | ||
1731 | "@types/react": { | ||
1732 | "optional": true | ||
1733 | } | ||
1734 | } | ||
1735 | }, | ||
1736 | "node_modules/@material-ui/styles": { | ||
1737 | "version": "4.11.4", | ||
1738 | "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", | ||
1739 | "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", | ||
1740 | "dependencies": { | ||
1741 | "@babel/runtime": "^7.4.4", | ||
1742 | "@emotion/hash": "^0.8.0", | ||
1743 | "@material-ui/types": "5.1.0", | ||
1744 | "@material-ui/utils": "^4.11.2", | ||
1745 | "clsx": "^1.0.4", | ||
1746 | "csstype": "^2.5.2", | ||
1747 | "hoist-non-react-statics": "^3.3.2", | ||
1748 | "jss": "^10.5.1", | ||
1749 | "jss-plugin-camel-case": "^10.5.1", | ||
1750 | "jss-plugin-default-unit": "^10.5.1", | ||
1751 | "jss-plugin-global": "^10.5.1", | ||
1752 | "jss-plugin-nested": "^10.5.1", | ||
1753 | "jss-plugin-props-sort": "^10.5.1", | ||
1754 | "jss-plugin-rule-value-function": "^10.5.1", | ||
1755 | "jss-plugin-vendor-prefixer": "^10.5.1", | ||
1756 | "prop-types": "^15.7.2" | ||
1757 | }, | ||
1758 | "engines": { | ||
1759 | "node": ">=8.0.0" | ||
1760 | }, | ||
1761 | "funding": { | ||
1762 | "type": "opencollective", | ||
1763 | "url": "https://opencollective.com/material-ui" | ||
1764 | }, | ||
1765 | "peerDependencies": { | ||
1766 | "@types/react": "^16.8.6 || ^17.0.0", | ||
1767 | "react": "^16.8.0 || ^17.0.0", | ||
1768 | "react-dom": "^16.8.0 || ^17.0.0" | ||
1769 | }, | ||
1770 | "peerDependenciesMeta": { | ||
1771 | "@types/react": { | ||
1772 | "optional": true | ||
1773 | } | ||
1774 | } | ||
1775 | }, | ||
1776 | "node_modules/@material-ui/system": { | ||
1777 | "version": "4.11.3", | ||
1778 | "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz", | ||
1779 | "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==", | ||
1780 | "dependencies": { | ||
1781 | "@babel/runtime": "^7.4.4", | ||
1782 | "@material-ui/utils": "^4.11.2", | ||
1783 | "csstype": "^2.5.2", | ||
1784 | "prop-types": "^15.7.2" | ||
1785 | }, | ||
1786 | "engines": { | ||
1787 | "node": ">=8.0.0" | ||
1788 | }, | ||
1789 | "funding": { | ||
1790 | "type": "opencollective", | ||
1791 | "url": "https://opencollective.com/material-ui" | ||
1792 | }, | ||
1793 | "peerDependencies": { | ||
1794 | "@types/react": "^16.8.6 || ^17.0.0", | ||
1795 | "react": "^16.8.0 || ^17.0.0", | ||
1796 | "react-dom": "^16.8.0 || ^17.0.0" | ||
1797 | }, | ||
1798 | "peerDependenciesMeta": { | ||
1799 | "@types/react": { | ||
1800 | "optional": true | ||
1801 | } | ||
1802 | } | ||
1803 | }, | ||
1804 | "node_modules/@material-ui/types": { | ||
1805 | "version": "5.1.0", | ||
1806 | "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", | ||
1807 | "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", | ||
1808 | "peerDependencies": { | ||
1809 | "@types/react": "*" | ||
1810 | }, | ||
1811 | "peerDependenciesMeta": { | ||
1812 | "@types/react": { | ||
1813 | "optional": true | ||
1814 | } | ||
1815 | } | ||
1816 | }, | ||
1817 | "node_modules/@material-ui/utils": { | ||
1818 | "version": "4.11.2", | ||
1819 | "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", | ||
1820 | "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", | ||
1821 | "dependencies": { | ||
1822 | "@babel/runtime": "^7.4.4", | ||
1823 | "prop-types": "^15.7.2", | ||
1824 | "react-is": "^16.8.0 || ^17.0.0" | ||
1825 | }, | ||
1826 | "engines": { | ||
1827 | "node": ">=8.0.0" | ||
1828 | }, | ||
1829 | "peerDependencies": { | ||
1830 | "react": "^16.8.0 || ^17.0.0", | ||
1831 | "react-dom": "^16.8.0 || ^17.0.0" | ||
1832 | } | ||
1833 | }, | ||
1669 | "node_modules/@nodelib/fs.scandir": { | 1834 | "node_modules/@nodelib/fs.scandir": { |
1670 | "version": "2.1.5", | 1835 | "version": "2.1.5", |
1671 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", | 1836 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", |
@@ -1771,6 +1936,11 @@ | |||
1771 | "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", | 1936 | "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", |
1772 | "dev": true | 1937 | "dev": true |
1773 | }, | 1938 | }, |
1939 | "node_modules/@types/prop-types": { | ||
1940 | "version": "15.7.3", | ||
1941 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", | ||
1942 | "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" | ||
1943 | }, | ||
1774 | "node_modules/@types/q": { | 1944 | "node_modules/@types/q": { |
1775 | "version": "1.5.4", | 1945 | "version": "1.5.4", |
1776 | "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", | 1946 | "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", |
@@ -1778,6 +1948,34 @@ | |||
1778 | "dev": true, | 1948 | "dev": true, |
1779 | "optional": true | 1949 | "optional": true |
1780 | }, | 1950 | }, |
1951 | "node_modules/@types/react": { | ||
1952 | "version": "17.0.11", | ||
1953 | "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", | ||
1954 | "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", | ||
1955 | "dependencies": { | ||
1956 | "@types/prop-types": "*", | ||
1957 | "@types/scheduler": "*", | ||
1958 | "csstype": "^3.0.2" | ||
1959 | } | ||
1960 | }, | ||
1961 | "node_modules/@types/react-transition-group": { | ||
1962 | "version": "4.4.1", | ||
1963 | "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz", | ||
1964 | "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", | ||
1965 | "dependencies": { | ||
1966 | "@types/react": "*" | ||
1967 | } | ||
1968 | }, | ||
1969 | "node_modules/@types/react/node_modules/csstype": { | ||
1970 | "version": "3.0.8", | ||
1971 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", | ||
1972 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" | ||
1973 | }, | ||
1974 | "node_modules/@types/scheduler": { | ||
1975 | "version": "0.16.1", | ||
1976 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", | ||
1977 | "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" | ||
1978 | }, | ||
1781 | "node_modules/@webassemblyjs/ast": { | 1979 | "node_modules/@webassemblyjs/ast": { |
1782 | "version": "1.11.0", | 1980 | "version": "1.11.0", |
1783 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", | 1981 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", |
@@ -3580,6 +3778,14 @@ | |||
3580 | "mimic-response": "^1.0.0" | 3778 | "mimic-response": "^1.0.0" |
3581 | } | 3779 | } |
3582 | }, | 3780 | }, |
3781 | "node_modules/clsx": { | ||
3782 | "version": "1.1.1", | ||
3783 | "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", | ||
3784 | "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", | ||
3785 | "engines": { | ||
3786 | "node": ">=6" | ||
3787 | } | ||
3788 | }, | ||
3583 | "node_modules/coa": { | 3789 | "node_modules/coa": { |
3584 | "version": "2.0.2", | 3790 | "version": "2.0.2", |
3585 | "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", | 3791 | "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", |
@@ -3949,6 +4155,15 @@ | |||
3949 | "node": ">=0.10.0" | 4155 | "node": ">=0.10.0" |
3950 | } | 4156 | } |
3951 | }, | 4157 | }, |
4158 | "node_modules/css-vendor": { | ||
4159 | "version": "2.0.8", | ||
4160 | "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", | ||
4161 | "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", | ||
4162 | "dependencies": { | ||
4163 | "@babel/runtime": "^7.8.3", | ||
4164 | "is-in-browser": "^1.0.2" | ||
4165 | } | ||
4166 | }, | ||
3952 | "node_modules/css-what": { | 4167 | "node_modules/css-what": { |
3953 | "version": "5.0.1", | 4168 | "version": "5.0.1", |
3954 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", | 4169 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", |
@@ -4017,6 +4232,11 @@ | |||
4017 | "node": ">=0.10.0" | 4232 | "node": ">=0.10.0" |
4018 | } | 4233 | } |
4019 | }, | 4234 | }, |
4235 | "node_modules/csstype": { | ||
4236 | "version": "2.6.17", | ||
4237 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz", | ||
4238 | "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A==" | ||
4239 | }, | ||
4020 | "node_modules/currently-unhandled": { | 4240 | "node_modules/currently-unhandled": { |
4021 | "version": "0.4.1", | 4241 | "version": "0.4.1", |
4022 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", | 4242 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", |
@@ -4629,6 +4849,20 @@ | |||
4629 | "utila": "~0.4" | 4849 | "utila": "~0.4" |
4630 | } | 4850 | } |
4631 | }, | 4851 | }, |
4852 | "node_modules/dom-helpers": { | ||
4853 | "version": "5.2.1", | ||
4854 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", | ||
4855 | "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", | ||
4856 | "dependencies": { | ||
4857 | "@babel/runtime": "^7.8.7", | ||
4858 | "csstype": "^3.0.2" | ||
4859 | } | ||
4860 | }, | ||
4861 | "node_modules/dom-helpers/node_modules/csstype": { | ||
4862 | "version": "3.0.8", | ||
4863 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", | ||
4864 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" | ||
4865 | }, | ||
4632 | "node_modules/dom-serializer": { | 4866 | "node_modules/dom-serializer": { |
4633 | "version": "1.3.2", | 4867 | "version": "1.3.2", |
4634 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", | 4868 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", |
@@ -6236,6 +6470,14 @@ | |||
6236 | "he": "bin/he" | 6470 | "he": "bin/he" |
6237 | } | 6471 | } |
6238 | }, | 6472 | }, |
6473 | "node_modules/hoist-non-react-statics": { | ||
6474 | "version": "3.3.2", | ||
6475 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", | ||
6476 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", | ||
6477 | "dependencies": { | ||
6478 | "react-is": "^16.7.0" | ||
6479 | } | ||
6480 | }, | ||
6239 | "node_modules/hosted-git-info": { | 6481 | "node_modules/hosted-git-info": { |
6240 | "version": "2.8.9", | 6482 | "version": "2.8.9", |
6241 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", | 6483 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", |
@@ -6565,6 +6807,11 @@ | |||
6565 | "node": ">=10.17.0" | 6807 | "node": ">=10.17.0" |
6566 | } | 6808 | } |
6567 | }, | 6809 | }, |
6810 | "node_modules/hyphenate-style-name": { | ||
6811 | "version": "1.0.4", | ||
6812 | "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", | ||
6813 | "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" | ||
6814 | }, | ||
6568 | "node_modules/iconv-lite": { | 6815 | "node_modules/iconv-lite": { |
6569 | "version": "0.4.24", | 6816 | "version": "0.4.24", |
6570 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | 6817 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", |
@@ -7396,6 +7643,11 @@ | |||
7396 | "node": ">=0.10.0" | 7643 | "node": ">=0.10.0" |
7397 | } | 7644 | } |
7398 | }, | 7645 | }, |
7646 | "node_modules/is-in-browser": { | ||
7647 | "version": "1.1.3", | ||
7648 | "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", | ||
7649 | "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" | ||
7650 | }, | ||
7399 | "node_modules/is-jpg": { | 7651 | "node_modules/is-jpg": { |
7400 | "version": "2.0.0", | 7652 | "version": "2.0.0", |
7401 | "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", | 7653 | "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", |
@@ -7777,6 +8029,93 @@ | |||
7777 | "node": ">=6" | 8029 | "node": ">=6" |
7778 | } | 8030 | } |
7779 | }, | 8031 | }, |
8032 | "node_modules/jss": { | ||
8033 | "version": "10.7.1", | ||
8034 | "resolved": "https://registry.npmjs.org/jss/-/jss-10.7.1.tgz", | ||
8035 | "integrity": "sha512-5QN8JSVZR6cxpZNeGfzIjqPEP+ZJwJJfZbXmeABNdxiExyO+eJJDy6WDtqTf8SDKnbL5kZllEpAP71E/Lt7PXg==", | ||
8036 | "dependencies": { | ||
8037 | "@babel/runtime": "^7.3.1", | ||
8038 | "csstype": "^3.0.2", | ||
8039 | "is-in-browser": "^1.1.3", | ||
8040 | "tiny-warning": "^1.0.2" | ||
8041 | }, | ||
8042 | "funding": { | ||
8043 | "type": "opencollective", | ||
8044 | "url": "https://opencollective.com/jss" | ||
8045 | } | ||
8046 | }, | ||
8047 | "node_modules/jss-plugin-camel-case": { | ||
8048 | "version": "10.7.1", | ||
8049 | "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.7.1.tgz", | ||
8050 | "integrity": "sha512-+ioIyWvmAfgDCWXsQcW1NMnLBvRinOVFkSYJUgewQ6TynOcSj5F1bSU23B7z0p1iqK0PPHIU62xY1iNJD33WGA==", | ||
8051 | "dependencies": { | ||
8052 | "@babel/runtime": "^7.3.1", | ||
8053 | "hyphenate-style-name": "^1.0.3", | ||
8054 | "jss": "10.7.1" | ||
8055 | } | ||
8056 | }, | ||
8057 | "node_modules/jss-plugin-default-unit": { | ||
8058 | "version": "10.7.1", | ||
8059 | "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.7.1.tgz", | ||
8060 | "integrity": "sha512-tW+dfYVNARBQb/ONzBwd8uyImigyzMiAEDai+AbH5rcHg5h3TtqhAkxx06iuZiT/dZUiFdSKlbe3q9jZGAPIwA==", | ||
8061 | "dependencies": { | ||
8062 | "@babel/runtime": "^7.3.1", | ||
8063 | "jss": "10.7.1" | ||
8064 | } | ||
8065 | }, | ||
8066 | "node_modules/jss-plugin-global": { | ||
8067 | "version": "10.7.1", | ||
8068 | "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.7.1.tgz", | ||
8069 | "integrity": "sha512-FbxCnu44IkK/bw8X3CwZKmcAnJqjAb9LujlAc/aP0bMSdVa3/MugKQRyeQSu00uGL44feJJDoeXXiHOakBr/Zw==", | ||
8070 | "dependencies": { | ||
8071 | "@babel/runtime": "^7.3.1", | ||
8072 | "jss": "10.7.1" | ||
8073 | } | ||
8074 | }, | ||
8075 | "node_modules/jss-plugin-nested": { | ||
8076 | "version": "10.7.1", | ||
8077 | "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.7.1.tgz", | ||
8078 | "integrity": "sha512-RNbICk7FlYKaJyv9tkMl7s6FFfeLA3ubNIFKvPqaWtADK0KUaPsPXVYBkAu4x1ItgsWx67xvReMrkcKA0jSXfA==", | ||
8079 | "dependencies": { | ||
8080 | "@babel/runtime": "^7.3.1", | ||
8081 | "jss": "10.7.1", | ||
8082 | "tiny-warning": "^1.0.2" | ||
8083 | } | ||
8084 | }, | ||
8085 | "node_modules/jss-plugin-props-sort": { | ||
8086 | "version": "10.7.1", | ||
8087 | "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.7.1.tgz", | ||
8088 | "integrity": "sha512-eyd5FhA+J0QrpqXxO7YNF/HMSXXl4pB0EmUdY4vSJI4QG22F59vQ6AHtP6fSwhmBdQ98Qd9gjfO+RMxcE39P1A==", | ||
8089 | "dependencies": { | ||
8090 | "@babel/runtime": "^7.3.1", | ||
8091 | "jss": "10.7.1" | ||
8092 | } | ||
8093 | }, | ||
8094 | "node_modules/jss-plugin-rule-value-function": { | ||
8095 | "version": "10.7.1", | ||
8096 | "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.7.1.tgz", | ||
8097 | "integrity": "sha512-fGAAImlbaHD3fXAHI3ooX6aRESOl5iBt3LjpVjxs9II5u9tzam7pqFUmgTcrip9VpRqYHn8J3gA7kCtm8xKwHg==", | ||
8098 | "dependencies": { | ||
8099 | "@babel/runtime": "^7.3.1", | ||
8100 | "jss": "10.7.1", | ||
8101 | "tiny-warning": "^1.0.2" | ||
8102 | } | ||
8103 | }, | ||
8104 | "node_modules/jss-plugin-vendor-prefixer": { | ||
8105 | "version": "10.7.1", | ||
8106 | "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.7.1.tgz", | ||
8107 | "integrity": "sha512-1UHFmBn7hZNsHXTkLLOL8abRl8vi+D1EVzWD4WmLFj55vawHZfnH1oEz6TUf5Y61XHv0smdHabdXds6BgOXe3A==", | ||
8108 | "dependencies": { | ||
8109 | "@babel/runtime": "^7.3.1", | ||
8110 | "css-vendor": "^2.0.8", | ||
8111 | "jss": "10.7.1" | ||
8112 | } | ||
8113 | }, | ||
8114 | "node_modules/jss/node_modules/csstype": { | ||
8115 | "version": "3.0.8", | ||
8116 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", | ||
8117 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" | ||
8118 | }, | ||
7780 | "node_modules/junk": { | 8119 | "node_modules/junk": { |
7781 | "version": "3.1.0", | 8120 | "version": "3.1.0", |
7782 | "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", | 8121 | "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", |
@@ -8330,6 +8669,36 @@ | |||
8330 | "mkdirp": "bin/cmd.js" | 8669 | "mkdirp": "bin/cmd.js" |
8331 | } | 8670 | } |
8332 | }, | 8671 | }, |
8672 | "node_modules/mobx": { | ||
8673 | "version": "6.3.2", | ||
8674 | "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz", | ||
8675 | "integrity": "sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==", | ||
8676 | "funding": { | ||
8677 | "type": "opencollective", | ||
8678 | "url": "https://opencollective.com/mobx" | ||
8679 | } | ||
8680 | }, | ||
8681 | "node_modules/mobx-react-lite": { | ||
8682 | "version": "3.2.0", | ||
8683 | "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz", | ||
8684 | "integrity": "sha512-q5+UHIqYCOpBoFm/PElDuOhbcatvTllgRp3M1s+Hp5j0Z6XNgDbgqxawJ0ZAUEyKM8X1zs70PCuhAIzX1f4Q/g==", | ||
8685 | "funding": { | ||
8686 | "type": "opencollective", | ||
8687 | "url": "https://opencollective.com/mobx" | ||
8688 | }, | ||
8689 | "peerDependencies": { | ||
8690 | "mobx": "^6.1.0", | ||
8691 | "react": "^16.8.0 || ^17" | ||
8692 | }, | ||
8693 | "peerDependenciesMeta": { | ||
8694 | "react-dom": { | ||
8695 | "optional": true | ||
8696 | }, | ||
8697 | "react-native": { | ||
8698 | "optional": true | ||
8699 | } | ||
8700 | } | ||
8701 | }, | ||
8333 | "node_modules/mozjpeg": { | 8702 | "node_modules/mozjpeg": { |
8334 | "version": "7.1.0", | 8703 | "version": "7.1.0", |
8335 | "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.1.0.tgz", | 8704 | "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.1.0.tgz", |
@@ -9241,6 +9610,11 @@ | |||
9241 | "node": ">=8.12.0" | 9610 | "node": ">=8.12.0" |
9242 | } | 9611 | } |
9243 | }, | 9612 | }, |
9613 | "node_modules/popper.js": { | ||
9614 | "version": "1.16.1-lts", | ||
9615 | "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", | ||
9616 | "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" | ||
9617 | }, | ||
9244 | "node_modules/portfinder": { | 9618 | "node_modules/portfinder": { |
9245 | "version": "1.0.28", | 9619 | "version": "1.0.28", |
9246 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", | 9620 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", |
@@ -9611,6 +9985,21 @@ | |||
9611 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", | 9985 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", |
9612 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" | 9986 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" |
9613 | }, | 9987 | }, |
9988 | "node_modules/react-transition-group": { | ||
9989 | "version": "4.4.2", | ||
9990 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", | ||
9991 | "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", | ||
9992 | "dependencies": { | ||
9993 | "@babel/runtime": "^7.5.5", | ||
9994 | "dom-helpers": "^5.0.1", | ||
9995 | "loose-envify": "^1.4.0", | ||
9996 | "prop-types": "^15.6.2" | ||
9997 | }, | ||
9998 | "peerDependencies": { | ||
9999 | "react": ">=16.6.0", | ||
10000 | "react-dom": ">=16.6.0" | ||
10001 | } | ||
10002 | }, | ||
9614 | "node_modules/read-pkg": { | 10003 | "node_modules/read-pkg": { |
9615 | "version": "1.1.0", | 10004 | "version": "1.1.0", |
9616 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", | 10005 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", |
@@ -9756,8 +10145,7 @@ | |||
9756 | "node_modules/regenerator-runtime": { | 10145 | "node_modules/regenerator-runtime": { |
9757 | "version": "0.13.7", | 10146 | "version": "0.13.7", |
9758 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", | 10147 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", |
9759 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", | 10148 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" |
9760 | "dev": true | ||
9761 | }, | 10149 | }, |
9762 | "node_modules/regenerator-transform": { | 10150 | "node_modules/regenerator-transform": { |
9763 | "version": "0.14.5", | 10151 | "version": "0.14.5", |
@@ -11360,6 +11748,11 @@ | |||
11360 | "node": ">=0.10.0" | 11748 | "node": ">=0.10.0" |
11361 | } | 11749 | } |
11362 | }, | 11750 | }, |
11751 | "node_modules/tiny-warning": { | ||
11752 | "version": "1.0.3", | ||
11753 | "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", | ||
11754 | "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" | ||
11755 | }, | ||
11363 | "node_modules/to-buffer": { | 11756 | "node_modules/to-buffer": { |
11364 | "version": "1.1.1", | 11757 | "version": "1.1.1", |
11365 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", | 11758 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", |
@@ -11692,6 +12085,65 @@ | |||
11692 | "querystring": "0.2.0" | 12085 | "querystring": "0.2.0" |
11693 | } | 12086 | } |
11694 | }, | 12087 | }, |
12088 | "node_modules/url-loader": { | ||
12089 | "version": "4.1.1", | ||
12090 | "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", | ||
12091 | "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", | ||
12092 | "dev": true, | ||
12093 | "dependencies": { | ||
12094 | "loader-utils": "^2.0.0", | ||
12095 | "mime-types": "^2.1.27", | ||
12096 | "schema-utils": "^3.0.0" | ||
12097 | }, | ||
12098 | "engines": { | ||
12099 | "node": ">= 10.13.0" | ||
12100 | }, | ||
12101 | "funding": { | ||
12102 | "type": "opencollective", | ||
12103 | "url": "https://opencollective.com/webpack" | ||
12104 | }, | ||
12105 | "peerDependencies": { | ||
12106 | "file-loader": "*", | ||
12107 | "webpack": "^4.0.0 || ^5.0.0" | ||
12108 | }, | ||
12109 | "peerDependenciesMeta": { | ||
12110 | "file-loader": { | ||
12111 | "optional": true | ||
12112 | } | ||
12113 | } | ||
12114 | }, | ||
12115 | "node_modules/url-loader/node_modules/loader-utils": { | ||
12116 | "version": "2.0.0", | ||
12117 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", | ||
12118 | "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", | ||
12119 | "dev": true, | ||
12120 | "dependencies": { | ||
12121 | "big.js": "^5.2.2", | ||
12122 | "emojis-list": "^3.0.0", | ||
12123 | "json5": "^2.1.2" | ||
12124 | }, | ||
12125 | "engines": { | ||
12126 | "node": ">=8.9.0" | ||
12127 | } | ||
12128 | }, | ||
12129 | "node_modules/url-loader/node_modules/schema-utils": { | ||
12130 | "version": "3.0.0", | ||
12131 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", | ||
12132 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", | ||
12133 | "dev": true, | ||
12134 | "dependencies": { | ||
12135 | "@types/json-schema": "^7.0.6", | ||
12136 | "ajv": "^6.12.5", | ||
12137 | "ajv-keywords": "^3.5.2" | ||
12138 | }, | ||
12139 | "engines": { | ||
12140 | "node": ">= 10.13.0" | ||
12141 | }, | ||
12142 | "funding": { | ||
12143 | "type": "opencollective", | ||
12144 | "url": "https://opencollective.com/webpack" | ||
12145 | } | ||
12146 | }, | ||
11695 | "node_modules/url-parse": { | 12147 | "node_modules/url-parse": { |
11696 | "version": "1.5.1", | 12148 | "version": "1.5.1", |
11697 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", | 12149 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", |
@@ -13795,7 +14247,6 @@ | |||
13795 | "version": "7.14.6", | 14247 | "version": "7.14.6", |
13796 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", | 14248 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", |
13797 | "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", | 14249 | "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", |
13798 | "dev": true, | ||
13799 | "requires": { | 14250 | "requires": { |
13800 | "regenerator-runtime": "^0.13.4" | 14251 | "regenerator-runtime": "^0.13.4" |
13801 | } | 14252 | } |
@@ -13844,6 +14295,88 @@ | |||
13844 | "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", | 14295 | "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", |
13845 | "dev": true | 14296 | "dev": true |
13846 | }, | 14297 | }, |
14298 | "@emotion/hash": { | ||
14299 | "version": "0.8.0", | ||
14300 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", | ||
14301 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" | ||
14302 | }, | ||
14303 | "@material-ui/core": { | ||
14304 | "version": "4.11.4", | ||
14305 | "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.4.tgz", | ||
14306 | "integrity": "sha512-oqb+lJ2Dl9HXI9orc6/aN8ZIAMkeThufA5iZELf2LQeBn2NtjVilF5D2w7e9RpntAzDb4jK5DsVhkfOvFY/8fg==", | ||
14307 | "requires": { | ||
14308 | "@babel/runtime": "^7.4.4", | ||
14309 | "@material-ui/styles": "^4.11.4", | ||
14310 | "@material-ui/system": "^4.11.3", | ||
14311 | "@material-ui/types": "5.1.0", | ||
14312 | "@material-ui/utils": "^4.11.2", | ||
14313 | "@types/react-transition-group": "^4.2.0", | ||
14314 | "clsx": "^1.0.4", | ||
14315 | "hoist-non-react-statics": "^3.3.2", | ||
14316 | "popper.js": "1.16.1-lts", | ||
14317 | "prop-types": "^15.7.2", | ||
14318 | "react-is": "^16.8.0 || ^17.0.0", | ||
14319 | "react-transition-group": "^4.4.0" | ||
14320 | } | ||
14321 | }, | ||
14322 | "@material-ui/icons": { | ||
14323 | "version": "4.11.2", | ||
14324 | "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", | ||
14325 | "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", | ||
14326 | "requires": { | ||
14327 | "@babel/runtime": "^7.4.4" | ||
14328 | } | ||
14329 | }, | ||
14330 | "@material-ui/styles": { | ||
14331 | "version": "4.11.4", | ||
14332 | "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", | ||
14333 | "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", | ||
14334 | "requires": { | ||
14335 | "@babel/runtime": "^7.4.4", | ||
14336 | "@emotion/hash": "^0.8.0", | ||
14337 | "@material-ui/types": "5.1.0", | ||
14338 | "@material-ui/utils": "^4.11.2", | ||
14339 | "clsx": "^1.0.4", | ||
14340 | "csstype": "^2.5.2", | ||
14341 | "hoist-non-react-statics": "^3.3.2", | ||
14342 | "jss": "^10.5.1", | ||
14343 | "jss-plugin-camel-case": "^10.5.1", | ||
14344 | "jss-plugin-default-unit": "^10.5.1", | ||
14345 | "jss-plugin-global": "^10.5.1", | ||
14346 | "jss-plugin-nested": "^10.5.1", | ||
14347 | "jss-plugin-props-sort": "^10.5.1", | ||
14348 | "jss-plugin-rule-value-function": "^10.5.1", | ||
14349 | "jss-plugin-vendor-prefixer": "^10.5.1", | ||
14350 | "prop-types": "^15.7.2" | ||
14351 | } | ||
14352 | }, | ||
14353 | "@material-ui/system": { | ||
14354 | "version": "4.11.3", | ||
14355 | "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz", | ||
14356 | "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==", | ||
14357 | "requires": { | ||
14358 | "@babel/runtime": "^7.4.4", | ||
14359 | "@material-ui/utils": "^4.11.2", | ||
14360 | "csstype": "^2.5.2", | ||
14361 | "prop-types": "^15.7.2" | ||
14362 | } | ||
14363 | }, | ||
14364 | "@material-ui/types": { | ||
14365 | "version": "5.1.0", | ||
14366 | "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", | ||
14367 | "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", | ||
14368 | "requires": {} | ||
14369 | }, | ||
14370 | "@material-ui/utils": { | ||
14371 | "version": "4.11.2", | ||
14372 | "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", | ||
14373 | "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", | ||
14374 | "requires": { | ||
14375 | "@babel/runtime": "^7.4.4", | ||
14376 | "prop-types": "^15.7.2", | ||
14377 | "react-is": "^16.8.0 || ^17.0.0" | ||
14378 | } | ||
14379 | }, | ||
13847 | "@nodelib/fs.scandir": { | 14380 | "@nodelib/fs.scandir": { |
13848 | "version": "2.1.5", | 14381 | "version": "2.1.5", |
13849 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", | 14382 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", |
@@ -13937,6 +14470,11 @@ | |||
13937 | "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", | 14470 | "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", |
13938 | "dev": true | 14471 | "dev": true |
13939 | }, | 14472 | }, |
14473 | "@types/prop-types": { | ||
14474 | "version": "15.7.3", | ||
14475 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", | ||
14476 | "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" | ||
14477 | }, | ||
13940 | "@types/q": { | 14478 | "@types/q": { |
13941 | "version": "1.5.4", | 14479 | "version": "1.5.4", |
13942 | "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", | 14480 | "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", |
@@ -13944,6 +14482,36 @@ | |||
13944 | "dev": true, | 14482 | "dev": true, |
13945 | "optional": true | 14483 | "optional": true |
13946 | }, | 14484 | }, |
14485 | "@types/react": { | ||
14486 | "version": "17.0.11", | ||
14487 | "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", | ||
14488 | "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", | ||
14489 | "requires": { | ||
14490 | "@types/prop-types": "*", | ||
14491 | "@types/scheduler": "*", | ||
14492 | "csstype": "^3.0.2" | ||
14493 | }, | ||
14494 | "dependencies": { | ||
14495 | "csstype": { | ||
14496 | "version": "3.0.8", | ||
14497 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", | ||
14498 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" | ||
14499 | } | ||
14500 | } | ||
14501 | }, | ||
14502 | "@types/react-transition-group": { | ||
14503 | "version": "4.4.1", | ||
14504 | "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz", | ||
14505 | "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", | ||
14506 | "requires": { | ||
14507 | "@types/react": "*" | ||
14508 | } | ||
14509 | }, | ||
14510 | "@types/scheduler": { | ||
14511 | "version": "0.16.1", | ||
14512 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", | ||
14513 | "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" | ||
14514 | }, | ||
13947 | "@webassemblyjs/ast": { | 14515 | "@webassemblyjs/ast": { |
13948 | "version": "1.11.0", | 14516 | "version": "1.11.0", |
13949 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", | 14517 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", |
@@ -15393,6 +15961,11 @@ | |||
15393 | "mimic-response": "^1.0.0" | 15961 | "mimic-response": "^1.0.0" |
15394 | } | 15962 | } |
15395 | }, | 15963 | }, |
15964 | "clsx": { | ||
15965 | "version": "1.1.1", | ||
15966 | "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", | ||
15967 | "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" | ||
15968 | }, | ||
15396 | "coa": { | 15969 | "coa": { |
15397 | "version": "2.0.2", | 15970 | "version": "2.0.2", |
15398 | "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", | 15971 | "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", |
@@ -15698,6 +16271,15 @@ | |||
15698 | } | 16271 | } |
15699 | } | 16272 | } |
15700 | }, | 16273 | }, |
16274 | "css-vendor": { | ||
16275 | "version": "2.0.8", | ||
16276 | "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", | ||
16277 | "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", | ||
16278 | "requires": { | ||
16279 | "@babel/runtime": "^7.8.3", | ||
16280 | "is-in-browser": "^1.0.2" | ||
16281 | } | ||
16282 | }, | ||
15701 | "css-what": { | 16283 | "css-what": { |
15702 | "version": "5.0.1", | 16284 | "version": "5.0.1", |
15703 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", | 16285 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", |
@@ -15747,6 +16329,11 @@ | |||
15747 | } | 16329 | } |
15748 | } | 16330 | } |
15749 | }, | 16331 | }, |
16332 | "csstype": { | ||
16333 | "version": "2.6.17", | ||
16334 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz", | ||
16335 | "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A==" | ||
16336 | }, | ||
15750 | "currently-unhandled": { | 16337 | "currently-unhandled": { |
15751 | "version": "0.4.1", | 16338 | "version": "0.4.1", |
15752 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", | 16339 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", |
@@ -16235,6 +16822,22 @@ | |||
16235 | "utila": "~0.4" | 16822 | "utila": "~0.4" |
16236 | } | 16823 | } |
16237 | }, | 16824 | }, |
16825 | "dom-helpers": { | ||
16826 | "version": "5.2.1", | ||
16827 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", | ||
16828 | "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", | ||
16829 | "requires": { | ||
16830 | "@babel/runtime": "^7.8.7", | ||
16831 | "csstype": "^3.0.2" | ||
16832 | }, | ||
16833 | "dependencies": { | ||
16834 | "csstype": { | ||
16835 | "version": "3.0.8", | ||
16836 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", | ||
16837 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" | ||
16838 | } | ||
16839 | } | ||
16840 | }, | ||
16238 | "dom-serializer": { | 16841 | "dom-serializer": { |
16239 | "version": "1.3.2", | 16842 | "version": "1.3.2", |
16240 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", | 16843 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", |
@@ -17486,6 +18089,14 @@ | |||
17486 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", | 18089 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", |
17487 | "dev": true | 18090 | "dev": true |
17488 | }, | 18091 | }, |
18092 | "hoist-non-react-statics": { | ||
18093 | "version": "3.3.2", | ||
18094 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", | ||
18095 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", | ||
18096 | "requires": { | ||
18097 | "react-is": "^16.7.0" | ||
18098 | } | ||
18099 | }, | ||
17489 | "hosted-git-info": { | 18100 | "hosted-git-info": { |
17490 | "version": "2.8.9", | 18101 | "version": "2.8.9", |
17491 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", | 18102 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", |
@@ -17758,6 +18369,11 @@ | |||
17758 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", | 18369 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", |
17759 | "dev": true | 18370 | "dev": true |
17760 | }, | 18371 | }, |
18372 | "hyphenate-style-name": { | ||
18373 | "version": "1.0.4", | ||
18374 | "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", | ||
18375 | "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" | ||
18376 | }, | ||
17761 | "iconv-lite": { | 18377 | "iconv-lite": { |
17762 | "version": "0.4.24", | 18378 | "version": "0.4.24", |
17763 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | 18379 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", |
@@ -18382,6 +18998,11 @@ | |||
18382 | "is-extglob": "^2.1.1" | 18998 | "is-extglob": "^2.1.1" |
18383 | } | 18999 | } |
18384 | }, | 19000 | }, |
19001 | "is-in-browser": { | ||
19002 | "version": "1.1.3", | ||
19003 | "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", | ||
19004 | "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" | ||
19005 | }, | ||
18385 | "is-jpg": { | 19006 | "is-jpg": { |
18386 | "version": "2.0.0", | 19007 | "version": "2.0.0", |
18387 | "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", | 19008 | "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", |
@@ -18657,6 +19278,91 @@ | |||
18657 | "minimist": "^1.2.5" | 19278 | "minimist": "^1.2.5" |
18658 | } | 19279 | } |
18659 | }, | 19280 | }, |
19281 | "jss": { | ||
19282 | "version": "10.7.1", | ||
19283 | "resolved": "https://registry.npmjs.org/jss/-/jss-10.7.1.tgz", | ||
19284 | "integrity": "sha512-5QN8JSVZR6cxpZNeGfzIjqPEP+ZJwJJfZbXmeABNdxiExyO+eJJDy6WDtqTf8SDKnbL5kZllEpAP71E/Lt7PXg==", | ||
19285 | "requires": { | ||
19286 | "@babel/runtime": "^7.3.1", | ||
19287 | "csstype": "^3.0.2", | ||
19288 | "is-in-browser": "^1.1.3", | ||
19289 | "tiny-warning": "^1.0.2" | ||
19290 | }, | ||
19291 | "dependencies": { | ||
19292 | "csstype": { | ||
19293 | "version": "3.0.8", | ||
19294 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", | ||
19295 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" | ||
19296 | } | ||
19297 | } | ||
19298 | }, | ||
19299 | "jss-plugin-camel-case": { | ||
19300 | "version": "10.7.1", | ||
19301 | "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.7.1.tgz", | ||
19302 | "integrity": "sha512-+ioIyWvmAfgDCWXsQcW1NMnLBvRinOVFkSYJUgewQ6TynOcSj5F1bSU23B7z0p1iqK0PPHIU62xY1iNJD33WGA==", | ||
19303 | "requires": { | ||
19304 | "@babel/runtime": "^7.3.1", | ||
19305 | "hyphenate-style-name": "^1.0.3", | ||
19306 | "jss": "10.7.1" | ||
19307 | } | ||
19308 | }, | ||
19309 | "jss-plugin-default-unit": { | ||
19310 | "version": "10.7.1", | ||
19311 | "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.7.1.tgz", | ||
19312 | "integrity": "sha512-tW+dfYVNARBQb/ONzBwd8uyImigyzMiAEDai+AbH5rcHg5h3TtqhAkxx06iuZiT/dZUiFdSKlbe3q9jZGAPIwA==", | ||
19313 | "requires": { | ||
19314 | "@babel/runtime": "^7.3.1", | ||
19315 | "jss": "10.7.1" | ||
19316 | } | ||
19317 | }, | ||
19318 | "jss-plugin-global": { | ||
19319 | "version": "10.7.1", | ||
19320 | "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.7.1.tgz", | ||
19321 | "integrity": "sha512-FbxCnu44IkK/bw8X3CwZKmcAnJqjAb9LujlAc/aP0bMSdVa3/MugKQRyeQSu00uGL44feJJDoeXXiHOakBr/Zw==", | ||
19322 | "requires": { | ||
19323 | "@babel/runtime": "^7.3.1", | ||
19324 | "jss": "10.7.1" | ||
19325 | } | ||
19326 | }, | ||
19327 | "jss-plugin-nested": { | ||
19328 | "version": "10.7.1", | ||
19329 | "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.7.1.tgz", | ||
19330 | "integrity": "sha512-RNbICk7FlYKaJyv9tkMl7s6FFfeLA3ubNIFKvPqaWtADK0KUaPsPXVYBkAu4x1ItgsWx67xvReMrkcKA0jSXfA==", | ||
19331 | "requires": { | ||
19332 | "@babel/runtime": "^7.3.1", | ||
19333 | "jss": "10.7.1", | ||
19334 | "tiny-warning": "^1.0.2" | ||
19335 | } | ||
19336 | }, | ||
19337 | "jss-plugin-props-sort": { | ||
19338 | "version": "10.7.1", | ||
19339 | "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.7.1.tgz", | ||
19340 | "integrity": "sha512-eyd5FhA+J0QrpqXxO7YNF/HMSXXl4pB0EmUdY4vSJI4QG22F59vQ6AHtP6fSwhmBdQ98Qd9gjfO+RMxcE39P1A==", | ||
19341 | "requires": { | ||
19342 | "@babel/runtime": "^7.3.1", | ||
19343 | "jss": "10.7.1" | ||
19344 | } | ||
19345 | }, | ||
19346 | "jss-plugin-rule-value-function": { | ||
19347 | "version": "10.7.1", | ||
19348 | "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.7.1.tgz", | ||
19349 | "integrity": "sha512-fGAAImlbaHD3fXAHI3ooX6aRESOl5iBt3LjpVjxs9II5u9tzam7pqFUmgTcrip9VpRqYHn8J3gA7kCtm8xKwHg==", | ||
19350 | "requires": { | ||
19351 | "@babel/runtime": "^7.3.1", | ||
19352 | "jss": "10.7.1", | ||
19353 | "tiny-warning": "^1.0.2" | ||
19354 | } | ||
19355 | }, | ||
19356 | "jss-plugin-vendor-prefixer": { | ||
19357 | "version": "10.7.1", | ||
19358 | "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.7.1.tgz", | ||
19359 | "integrity": "sha512-1UHFmBn7hZNsHXTkLLOL8abRl8vi+D1EVzWD4WmLFj55vawHZfnH1oEz6TUf5Y61XHv0smdHabdXds6BgOXe3A==", | ||
19360 | "requires": { | ||
19361 | "@babel/runtime": "^7.3.1", | ||
19362 | "css-vendor": "^2.0.8", | ||
19363 | "jss": "10.7.1" | ||
19364 | } | ||
19365 | }, | ||
18660 | "junk": { | 19366 | "junk": { |
18661 | "version": "3.1.0", | 19367 | "version": "3.1.0", |
18662 | "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", | 19368 | "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", |
@@ -19078,6 +19784,17 @@ | |||
19078 | "minimist": "^1.2.5" | 19784 | "minimist": "^1.2.5" |
19079 | } | 19785 | } |
19080 | }, | 19786 | }, |
19787 | "mobx": { | ||
19788 | "version": "6.3.2", | ||
19789 | "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz", | ||
19790 | "integrity": "sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==" | ||
19791 | }, | ||
19792 | "mobx-react-lite": { | ||
19793 | "version": "3.2.0", | ||
19794 | "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz", | ||
19795 | "integrity": "sha512-q5+UHIqYCOpBoFm/PElDuOhbcatvTllgRp3M1s+Hp5j0Z6XNgDbgqxawJ0ZAUEyKM8X1zs70PCuhAIzX1f4Q/g==", | ||
19796 | "requires": {} | ||
19797 | }, | ||
19081 | "mozjpeg": { | 19798 | "mozjpeg": { |
19082 | "version": "7.1.0", | 19799 | "version": "7.1.0", |
19083 | "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.1.0.tgz", | 19800 | "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.1.0.tgz", |
@@ -19762,6 +20479,11 @@ | |||
19762 | } | 20479 | } |
19763 | } | 20480 | } |
19764 | }, | 20481 | }, |
20482 | "popper.js": { | ||
20483 | "version": "1.16.1-lts", | ||
20484 | "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", | ||
20485 | "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" | ||
20486 | }, | ||
19765 | "portfinder": { | 20487 | "portfinder": { |
19766 | "version": "1.0.28", | 20488 | "version": "1.0.28", |
19767 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", | 20489 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", |
@@ -20042,6 +20764,17 @@ | |||
20042 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", | 20764 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", |
20043 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" | 20765 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" |
20044 | }, | 20766 | }, |
20767 | "react-transition-group": { | ||
20768 | "version": "4.4.2", | ||
20769 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", | ||
20770 | "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", | ||
20771 | "requires": { | ||
20772 | "@babel/runtime": "^7.5.5", | ||
20773 | "dom-helpers": "^5.0.1", | ||
20774 | "loose-envify": "^1.4.0", | ||
20775 | "prop-types": "^15.6.2" | ||
20776 | } | ||
20777 | }, | ||
20045 | "read-pkg": { | 20778 | "read-pkg": { |
20046 | "version": "1.1.0", | 20779 | "version": "1.1.0", |
20047 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", | 20780 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", |
@@ -20164,8 +20897,7 @@ | |||
20164 | "regenerator-runtime": { | 20897 | "regenerator-runtime": { |
20165 | "version": "0.13.7", | 20898 | "version": "0.13.7", |
20166 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", | 20899 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", |
20167 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", | 20900 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" |
20168 | "dev": true | ||
20169 | }, | 20901 | }, |
20170 | "regenerator-transform": { | 20902 | "regenerator-transform": { |
20171 | "version": "0.14.5", | 20903 | "version": "0.14.5", |
@@ -21456,6 +22188,11 @@ | |||
21456 | "dev": true, | 22188 | "dev": true, |
21457 | "optional": true | 22189 | "optional": true |
21458 | }, | 22190 | }, |
22191 | "tiny-warning": { | ||
22192 | "version": "1.0.3", | ||
22193 | "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", | ||
22194 | "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" | ||
22195 | }, | ||
21459 | "to-buffer": { | 22196 | "to-buffer": { |
21460 | "version": "1.1.1", | 22197 | "version": "1.1.1", |
21461 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", | 22198 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", |
@@ -21728,6 +22465,41 @@ | |||
21728 | } | 22465 | } |
21729 | } | 22466 | } |
21730 | }, | 22467 | }, |
22468 | "url-loader": { | ||
22469 | "version": "4.1.1", | ||
22470 | "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", | ||
22471 | "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", | ||
22472 | "dev": true, | ||
22473 | "requires": { | ||
22474 | "loader-utils": "^2.0.0", | ||
22475 | "mime-types": "^2.1.27", | ||
22476 | "schema-utils": "^3.0.0" | ||
22477 | }, | ||
22478 | "dependencies": { | ||
22479 | "loader-utils": { | ||
22480 | "version": "2.0.0", | ||
22481 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", | ||
22482 | "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", | ||
22483 | "dev": true, | ||
22484 | "requires": { | ||
22485 | "big.js": "^5.2.2", | ||
22486 | "emojis-list": "^3.0.0", | ||
22487 | "json5": "^2.1.2" | ||
22488 | } | ||
22489 | }, | ||
22490 | "schema-utils": { | ||
22491 | "version": "3.0.0", | ||
22492 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", | ||
22493 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", | ||
22494 | "dev": true, | ||
22495 | "requires": { | ||
22496 | "@types/json-schema": "^7.0.6", | ||
22497 | "ajv": "^6.12.5", | ||
22498 | "ajv-keywords": "^3.5.2" | ||
22499 | } | ||
22500 | } | ||
22501 | } | ||
22502 | }, | ||
21731 | "url-parse": { | 22503 | "url-parse": { |
21732 | "version": "1.5.1", | 22504 | "version": "1.5.1", |
21733 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", | 22505 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", |
diff --git a/language-web/package.json b/language-web/package.json index fa5998c6..e8d0a32f 100644 --- a/language-web/package.json +++ b/language-web/package.json | |||
@@ -32,14 +32,19 @@ | |||
32 | "sass": "^1.35.1", | 32 | "sass": "^1.35.1", |
33 | "sass-loader": "^12.1.0", | 33 | "sass-loader": "^12.1.0", |
34 | "style-loader": "^3.0.0", | 34 | "style-loader": "^3.0.0", |
35 | "url-loader": "^4.1.1", | ||
35 | "webpack": "^5.41.0", | 36 | "webpack": "^5.41.0", |
36 | "webpack-cli": "^4.7.2", | 37 | "webpack-cli": "^4.7.2", |
37 | "webpack-dev-server": "^3.11.2", | 38 | "webpack-dev-server": "^3.11.2", |
38 | "webpack-subresource-integrity": "^5.0.0-alpha.5" | 39 | "webpack-subresource-integrity": "^5.0.0-alpha.5" |
39 | }, | 40 | }, |
40 | "dependencies": { | 41 | "dependencies": { |
42 | "@material-ui/core": "^4.11.4", | ||
43 | "@material-ui/icons": "^4.11.2", | ||
41 | "codemirror": "^5.62.0", | 44 | "codemirror": "^5.62.0", |
42 | "jquery": "^3.6.0", | 45 | "jquery": "^3.6.0", |
46 | "mobx": "^6.3.2", | ||
47 | "mobx-react-lite": "^3.2.0", | ||
43 | "react": "^16.14.0", | 48 | "react": "^16.14.0", |
44 | "react-codemirror2": "^7.2.1", | 49 | "react-codemirror2": "^7.2.1", |
45 | "react-dom": "^16.14.0" | 50 | "react-dom": "^16.14.0" |
diff --git a/language-web/src/main/css/index.scss b/language-web/src/main/css/index.scss index e788bbd1..62109a2f 100644 --- a/language-web/src/main/css/index.scss +++ b/language-web/src/main/css/index.scss | |||
@@ -3,70 +3,6 @@ | |||
3 | 3 | ||
4 | @import 'xtext/xtext-codemirror'; | 4 | @import 'xtext/xtext-codemirror'; |
5 | 5 | ||
6 | body { | ||
7 | width: 100%; | ||
8 | height: 100%; | ||
9 | overflow: hidden; | ||
10 | font: 16px Helvetica,sans-serif; | ||
11 | } | ||
12 | |||
13 | a { | ||
14 | color: #22a; | ||
15 | text-decoration: none; | ||
16 | } | ||
17 | |||
18 | a:hover { | ||
19 | text-decoration: underline; | ||
20 | } | ||
21 | |||
22 | .container { | ||
23 | display: block; | ||
24 | position: absolute; | ||
25 | top: 0; | ||
26 | bottom: 0; | ||
27 | left: 0; | ||
28 | right: 0; | ||
29 | margin: 24px 24px 36px 24px; | ||
30 | } | ||
31 | |||
32 | .header { | ||
33 | display: block; | ||
34 | position: absolute; | ||
35 | top: 0; | ||
36 | left: 0; | ||
37 | right: 0; | ||
38 | padding: 16px; | ||
39 | background: #dbdbdb; | ||
40 | border-radius: 16px; | ||
41 | color: #383838; | ||
42 | } | ||
43 | |||
44 | .header h1 { | ||
45 | font-size: 36px; | ||
46 | margin: 0; | ||
47 | } | ||
48 | |||
49 | .content { | ||
50 | display: block; | ||
51 | position: absolute; | ||
52 | top: 108px; | ||
53 | bottom: 0; | ||
54 | left: 0; | ||
55 | width: 100%; | ||
56 | box-shadow: 0 0 8px rgba(80, 10, 98, .25), 0 10px 24px rgba(80, 10, 98, .35); | ||
57 | border-radius: 16px; | ||
58 | } | ||
59 | |||
60 | .xtext-editor { | ||
61 | display: block; | ||
62 | position: absolute; | ||
63 | top: 16px; | ||
64 | bottom: 16px; | ||
65 | left: 16px; | ||
66 | right: 16px; | ||
67 | border: 1px solid #999; | ||
68 | } | ||
69 | |||
70 | .problem-class { | 6 | .problem-class { |
71 | color: #005032; | 7 | color: #005032; |
72 | } | 8 | } |
diff --git a/language-web/src/main/js/App.jsx b/language-web/src/main/js/App.jsx new file mode 100644 index 00000000..61ded943 --- /dev/null +++ b/language-web/src/main/js/App.jsx | |||
@@ -0,0 +1,73 @@ | |||
1 | import React from 'react'; | ||
2 | import { makeStyles } from '@material-ui/core/styles'; | ||
3 | import AppBar from '@material-ui/core/AppBar'; | ||
4 | import Box from '@material-ui/core/Box'; | ||
5 | import Fab from '@material-ui/core/Fab'; | ||
6 | import IconButton from '@material-ui/core/IconButton'; | ||
7 | import Toolbar from '@material-ui/core/Toolbar'; | ||
8 | import Typography from '@material-ui/core/Typography'; | ||
9 | import MenuIcon from '@material-ui/icons/Menu'; | ||
10 | import PlayArrowIcon from '@material-ui/icons/PlayArrow'; | ||
11 | |||
12 | import Editor from './editor/Editor'; | ||
13 | import EditorButtons from './editor/EditorButtons'; | ||
14 | |||
15 | const useStyles = makeStyles(theme => ({ | ||
16 | menuButton: { | ||
17 | marginRight: theme.spacing(2), | ||
18 | }, | ||
19 | title: { | ||
20 | flexGrow: 1, | ||
21 | }, | ||
22 | fab: { | ||
23 | position: 'fixed', | ||
24 | right: theme.spacing(3), | ||
25 | bottom: theme.spacing(3), | ||
26 | zIndex: 1000, | ||
27 | }, | ||
28 | extendedIcon: { | ||
29 | marginRight: theme.spacing(1), | ||
30 | } | ||
31 | })); | ||
32 | |||
33 | export default () => { | ||
34 | const classes = useStyles(); | ||
35 | |||
36 | return ( | ||
37 | <> | ||
38 | <AppBar | ||
39 | position='static' | ||
40 | > | ||
41 | <Toolbar> | ||
42 | <IconButton | ||
43 | edge='start' | ||
44 | className={classes.menuButton} | ||
45 | color='inherit' | ||
46 | aria-label='menu' | ||
47 | > | ||
48 | <MenuIcon /> | ||
49 | </IconButton> | ||
50 | <Typography | ||
51 | variant='h6' | ||
52 | component='h1' | ||
53 | className={classes.title} | ||
54 | > | ||
55 | GraphSolver | ||
56 | </Typography> | ||
57 | </Toolbar> | ||
58 | </AppBar> | ||
59 | <Box> | ||
60 | <EditorButtons/> | ||
61 | </Box> | ||
62 | <Editor/> | ||
63 | <Fab | ||
64 | variant='extended' | ||
65 | color='secondary' | ||
66 | className={classes.fab} | ||
67 | > | ||
68 | <PlayArrowIcon className={classes.extendedIcon}/> | ||
69 | Generate | ||
70 | </Fab> | ||
71 | </> | ||
72 | ); | ||
73 | }; | ||
diff --git a/language-web/src/main/js/Navbar.jsx b/language-web/src/main/js/Navbar.jsx new file mode 100644 index 00000000..cf1bc54f --- /dev/null +++ b/language-web/src/main/js/Navbar.jsx | |||
@@ -0,0 +1,37 @@ | |||
1 | import React from 'react'; | ||
2 | import { Button, Navbar, Nav } from 'react-bootstrap'; | ||
3 | import { FaGithub, FaPlayCircle } from 'react-icons/fa'; | ||
4 | |||
5 | export default () => ( | ||
6 | <Navbar | ||
7 | variant='secondary' | ||
8 | className='px-2' | ||
9 | > | ||
10 | <Navbar.Brand>GraphSolver</Navbar.Brand> | ||
11 | <Navbar.Toggle aria-controls='basic-navbar-nav'/> | ||
12 | <Navbar.Collapse id='basic-navbar-nav'> | ||
13 | <Nav className="me-auto"> | ||
14 | <Nav.Link | ||
15 | href="https://github.com/viatra/VIATRA-Generator#readme" | ||
16 | > | ||
17 | About | ||
18 | </Nav.Link> | ||
19 | <Nav.Link | ||
20 | href="https://github.com/viatra/VIATRA-Generator/wiki" | ||
21 | > | ||
22 | Getting started | ||
23 | </Nav.Link> | ||
24 | <Nav.Link | ||
25 | href="https://github.com/viatra/VIATRA-Generator" | ||
26 | > | ||
27 | <FaGithub/> Github | ||
28 | </Nav.Link> | ||
29 | </Nav> | ||
30 | <Button | ||
31 | variant='success' | ||
32 | > | ||
33 | <FaPlayCircle/> Generate | ||
34 | </Button> | ||
35 | </Navbar.Collapse> | ||
36 | </Navbar> | ||
37 | ); | ||
diff --git a/language-web/src/main/js/RootStore.jsx b/language-web/src/main/js/RootStore.jsx new file mode 100644 index 00000000..1ee2823d --- /dev/null +++ b/language-web/src/main/js/RootStore.jsx | |||
@@ -0,0 +1,30 @@ | |||
1 | import { makeAutoObservable } from 'mobx'; | ||
2 | import React, { createContext, useContext } from 'react'; | ||
3 | |||
4 | import EditorStore from './editor/EditorStore'; | ||
5 | |||
6 | export default class RootStore { | ||
7 | editorStore; | ||
8 | |||
9 | constructor() { | ||
10 | this.editorStore = new EditorStore(); | ||
11 | makeAutoObservable(this); | ||
12 | } | ||
13 | } | ||
14 | |||
15 | const StoreContext = createContext(undefined); | ||
16 | |||
17 | export const RootStoreProvider = ({ children, rootStore }) => ( | ||
18 | <StoreContext.Provider value={rootStore}> | ||
19 | {children} | ||
20 | </StoreContext.Provider> | ||
21 | ); | ||
22 | |||
23 | /** @returns {RootStore} */ | ||
24 | export const useRootStore = () => { | ||
25 | const rootStore = useContext(StoreContext); | ||
26 | if (!rootStore) { | ||
27 | throw new Error('useRootStore must be used within RootStoreProvider'); | ||
28 | } | ||
29 | return rootStore; | ||
30 | }; | ||
diff --git a/language-web/src/main/js/components/XtextCodeMirror.jsx b/language-web/src/main/js/components/XtextCodeMirror.jsx deleted file mode 100644 index 75a20daa..00000000 --- a/language-web/src/main/js/components/XtextCodeMirror.jsx +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | import React, { useCallback, useState } from 'react'; | ||
2 | import { Controlled as CodeMirror } from 'react-codemirror2'; | ||
3 | import 'mode-problem'; | ||
4 | import { createServices, removeServices } from 'xtext/xtext-codemirror'; | ||
5 | |||
6 | export default function XtextCodeMirror({ initialValue }) { | ||
7 | const [value, setValue] = useState(initialValue); | ||
8 | |||
9 | const codeMirrorOptions = { | ||
10 | mode: 'xtext/problem', | ||
11 | indentUnit: 2, | ||
12 | }; | ||
13 | |||
14 | const xtextOptions = { | ||
15 | xtextLang: 'problem', | ||
16 | enableFormattingAction: true, | ||
17 | }; | ||
18 | |||
19 | const onBeforeChange = useCallback((_editor, _data, newValue) => { | ||
20 | setValue(newValue); | ||
21 | }, [setValue]); | ||
22 | |||
23 | return ( | ||
24 | <CodeMirror | ||
25 | value={value} | ||
26 | options={codeMirrorOptions} | ||
27 | editorDidMount={editor => createServices(editor, xtextOptions)} | ||
28 | editorWillUnmount={removeServices} | ||
29 | onBeforeChange={onBeforeChange} | ||
30 | /> | ||
31 | ); | ||
32 | }; | ||
diff --git a/language-web/src/main/js/editor/Editor.jsx b/language-web/src/main/js/editor/Editor.jsx new file mode 100644 index 00000000..c4b2e183 --- /dev/null +++ b/language-web/src/main/js/editor/Editor.jsx | |||
@@ -0,0 +1,50 @@ | |||
1 | import { observer } from 'mobx-react-lite'; | ||
2 | import 'mode-problem'; | ||
3 | import React, { useCallback } from 'react'; | ||
4 | import { Controlled as CodeMirror } from 'react-codemirror2'; | ||
5 | import { createServices, removeServices } from 'xtext/xtext-codemirror'; | ||
6 | |||
7 | import { useRootStore } from '../RootStore'; | ||
8 | |||
9 | export default observer(() => { | ||
10 | const editorStore = useRootStore().editorStore; | ||
11 | |||
12 | const codeMirrorOptions = { | ||
13 | mode: 'xtext/problem', | ||
14 | indentUnit: 2, | ||
15 | }; | ||
16 | |||
17 | const xtextOptions = { | ||
18 | xtextLang: 'problem', | ||
19 | enableFormattingAction: true, | ||
20 | } | ||
21 | |||
22 | const editorDidMount = useCallback((editor) => { | ||
23 | createServices(editor, xtextOptions); | ||
24 | editorStore.updateEditor(editor); | ||
25 | }, [editorStore]); | ||
26 | |||
27 | const editorWillUnmount = useCallback((editor) => { | ||
28 | editorStore.editor = null; | ||
29 | removeServices(editor); | ||
30 | }, [editorStore]); | ||
31 | |||
32 | const onBeforeChange = useCallback((_editor, _data, value) => { | ||
33 | editorStore.updateValue(value); | ||
34 | }, [editorStore]); | ||
35 | |||
36 | const onChange = useCallback((_editor, _data, _value) => { | ||
37 | editorStore.reportChanged(); | ||
38 | }, [editorStore]); | ||
39 | |||
40 | return ( | ||
41 | <CodeMirror | ||
42 | value={editorStore.value} | ||
43 | options={codeMirrorOptions} | ||
44 | editorDidMount={editorDidMount} | ||
45 | editorWillUnmount={editorWillUnmount} | ||
46 | onBeforeChange={onBeforeChange} | ||
47 | onChange={onChange} | ||
48 | /> | ||
49 | ); | ||
50 | }); | ||
diff --git a/language-web/src/main/js/editor/EditorButtons.jsx b/language-web/src/main/js/editor/EditorButtons.jsx new file mode 100644 index 00000000..b9f0d076 --- /dev/null +++ b/language-web/src/main/js/editor/EditorButtons.jsx | |||
@@ -0,0 +1,27 @@ | |||
1 | import { observer } from 'mobx-react-lite'; | ||
2 | import React from 'react'; | ||
3 | import IconButton from '@material-ui/core/IconButton'; | ||
4 | import RedoIcon from '@material-ui/icons/Redo'; | ||
5 | import UndoIcon from '@material-ui/icons/Undo'; | ||
6 | |||
7 | import { useRootStore } from '../RootStore'; | ||
8 | |||
9 | export default observer(() => { | ||
10 | const editorStore = useRootStore().editorStore; | ||
11 | return ( | ||
12 | <> | ||
13 | <IconButton | ||
14 | disabled={!editorStore.canUndo} | ||
15 | onClick={() => editorStore.undo()} | ||
16 | > | ||
17 | <UndoIcon fontSize='small'/> | ||
18 | </IconButton> | ||
19 | <IconButton | ||
20 | disabled={!editorStore.canRedo} | ||
21 | onClick={() => editorStore.redo()} | ||
22 | > | ||
23 | <RedoIcon fontSize='small'/> | ||
24 | </IconButton> | ||
25 | </> | ||
26 | ); | ||
27 | }); | ||
diff --git a/language-web/src/main/js/editor/EditorStore.jsx b/language-web/src/main/js/editor/EditorStore.jsx new file mode 100644 index 00000000..9c286c28 --- /dev/null +++ b/language-web/src/main/js/editor/EditorStore.jsx | |||
@@ -0,0 +1,75 @@ | |||
1 | import CodeMirror from 'codemirror'; | ||
2 | import { createAtom, makeAutoObservable, observable } from 'mobx'; | ||
3 | |||
4 | export default class EditorStore { | ||
5 | atom; | ||
6 | /** @type {CodeMirror} */ | ||
7 | editor = null; | ||
8 | /** @type {string} */ | ||
9 | value = ''; | ||
10 | |||
11 | constructor() { | ||
12 | this.atom = createAtom('EditorStore'); | ||
13 | makeAutoObservable(this, { | ||
14 | atom: false, | ||
15 | editor: observable.ref, | ||
16 | }); | ||
17 | } | ||
18 | |||
19 | /** | ||
20 | * Attaches a new CodeMirror instance. | ||
21 | * | ||
22 | * The store will node subscribe to any CodeMirror events. Instead, | ||
23 | * the editor component should subscribe to them and relay them to the store. | ||
24 | * | ||
25 | * @param {CodeMirror} newEditor The new CodeMirror instance | ||
26 | */ | ||
27 | updateEditor(newEditor) { | ||
28 | this.editor = newEditor; | ||
29 | } | ||
30 | |||
31 | /** | ||
32 | * Updates the contents of the editor. | ||
33 | * | ||
34 | * @param {string} newValue The new contents of the editor | ||
35 | */ | ||
36 | updateValue(newValue) { | ||
37 | this.value = newValue; | ||
38 | } | ||
39 | |||
40 | reportChanged() { | ||
41 | this.atom.reportChanged(); | ||
42 | } | ||
43 | |||
44 | /** | ||
45 | * @returns {boolean} `true` if there is history to undo | ||
46 | */ | ||
47 | get canUndo() { | ||
48 | this.atom.reportObserved(); | ||
49 | if (!this.editor) { | ||
50 | return false; | ||
51 | } | ||
52 | const { undo: undoSize } = this.editor.historySize(); | ||
53 | return undoSize > 0; | ||
54 | } | ||
55 | |||
56 | undo() { | ||
57 | this.editor.undo(); | ||
58 | } | ||
59 | |||
60 | /** | ||
61 | * @returns {boolean} `true` if there is history to redo | ||
62 | */ | ||
63 | get canRedo() { | ||
64 | this.atom.reportObserved(); | ||
65 | if (!this.editor) { | ||
66 | return false; | ||
67 | } | ||
68 | const { redo: redoSize } = this.editor.historySize(); | ||
69 | return redoSize > 0; | ||
70 | } | ||
71 | |||
72 | redo() { | ||
73 | this.editor.redo(); | ||
74 | } | ||
75 | } | ||
diff --git a/language-web/src/main/js/index.jsx b/language-web/src/main/js/index.jsx index 48c0baeb..17e6aef2 100644 --- a/language-web/src/main/js/index.jsx +++ b/language-web/src/main/js/index.jsx | |||
@@ -1,7 +1,11 @@ | |||
1 | import React from 'react'; | 1 | import React from 'react'; |
2 | import { render } from 'react-dom'; | 2 | import { render } from 'react-dom'; |
3 | import { createMuiTheme } from '@material-ui/core/styles'; | ||
4 | import { ThemeProvider } from '@material-ui/styles'; | ||
3 | 5 | ||
4 | import XtextCodeMirror from "./components/XtextCodeMirror"; | 6 | import App from './App'; |
7 | import CssBaseline from '@material-ui/core/CssBaseline'; | ||
8 | import RootStore, { RootStoreProvider } from './RootStore'; | ||
5 | 9 | ||
6 | import '../css/index.scss'; | 10 | import '../css/index.scss'; |
7 | 11 | ||
@@ -38,6 +42,19 @@ age(bob, bobAge). | |||
38 | 42 | ||
39 | scope Family = 1, Person += 5..10. | 43 | scope Family = 1, Person += 5..10. |
40 | `; | 44 | `; |
41 | const app = <XtextCodeMirror initialValue={initialValue}/>; | 45 | |
46 | const rootStore = new RootStore(); | ||
47 | rootStore.editorStore.updateValue(initialValue); | ||
48 | |||
49 | const theme = createMuiTheme(); | ||
50 | |||
51 | const app = ( | ||
52 | <ThemeProvider theme={theme}> | ||
53 | <CssBaseline/> | ||
54 | <RootStoreProvider rootStore={rootStore}> | ||
55 | <App/> | ||
56 | </RootStoreProvider> | ||
57 | </ThemeProvider> | ||
58 | ) | ||
42 | 59 | ||
43 | render(app, document.getElementById('app')); | 60 | render(app, document.getElementById('app')); |
diff --git a/language-web/webpack.config.js b/language-web/webpack.config.js index a40b647f..5d3db7dd 100644 --- a/language-web/webpack.config.js +++ b/language-web/webpack.config.js | |||
@@ -40,9 +40,25 @@ module.exports = { | |||
40 | loader: 'babel-loader', | 40 | loader: 'babel-loader', |
41 | options: { | 41 | options: { |
42 | presets: [ | 42 | presets: [ |
43 | ['@babel/preset-env', { targets: 'defaults' }], | 43 | [ |
44 | '@babel/preset-env', | ||
45 | { | ||
46 | targets: 'defaults', | ||
47 | }, | ||
48 | ], | ||
44 | '@babel/preset-react', | 49 | '@babel/preset-react', |
45 | ], | 50 | ], |
51 | plugins: [ | ||
52 | [ | ||
53 | '@babel/plugin-proposal-class-properties', | ||
54 | { | ||
55 | loose: false, | ||
56 | }, | ||
57 | ], | ||
58 | ], | ||
59 | assumptions: { | ||
60 | 'setPublicClassFields': false, | ||
61 | }, | ||
46 | }, | 62 | }, |
47 | }, | 63 | }, |
48 | { | 64 | { |
@@ -59,15 +75,20 @@ module.exports = { | |||
59 | ] | 75 | ] |
60 | }, | 76 | }, |
61 | { | 77 | { |
62 | test: /\.(gif|png|jpe?g|svg)$/i, | 78 | test: /\.(gif|png|jpe?g|svg?)$/i, |
63 | use: [ | 79 | use: [ |
64 | 'file-loader', | ||
65 | { | 80 | { |
66 | loader: 'image-webpack-loader', | 81 | loader: 'image-webpack-loader', |
67 | options: { | 82 | options: { |
68 | disable: true, | 83 | disable: true, |
69 | } | 84 | } |
70 | }, | 85 | }, |
86 | { | ||
87 | loader: 'url-loader', | ||
88 | options: { | ||
89 | limit: 256, | ||
90 | }, | ||
91 | }, | ||
71 | ], | 92 | ], |
72 | }, | 93 | }, |
73 | ], | 94 | ], |