diff --git a/package-lock.json b/package-lock.json index 924cbcf0379375231df7b7e88975da96679ee625..7308f4845827731a167db3e75e6cf2f9a0f48554 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1046,6 +1046,11 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" }, + "@emotion/hash": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.4.tgz", + "integrity": "sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A==" + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -1271,6 +1276,154 @@ "@types/yargs": "^13.0.0" } }, + "@material-ui/core": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.3.2.tgz", + "integrity": "sha512-TLKEUw3/R/pOInnJkx0x78zqMos34SPL3HfuRRZMxInRQ6AKUlyglOFyvSwFITknTmc8AGRFknGpZt05g2XFTg==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.3.0", + "@material-ui/system": "^4.3.3", + "@material-ui/types": "^4.1.1", + "@material-ui/utils": "^4.3.0", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.2", + "convert-css-length": "^2.0.1", + "deepmerge": "^4.0.0", + "hoist-non-react-statics": "^3.2.1", + "is-plain-object": "^3.0.0", + "normalize-scroll-left": "^0.2.0", + "popper.js": "^1.14.1", + "prop-types": "^15.7.2", + "react-transition-group": "^4.0.0", + "warning": "^4.0.1" + }, + "dependencies": { + "dom-helpers": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.3.tgz", + "integrity": "sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==", + "requires": { + "@babel/runtime": "^7.6.3", + "csstype": "^2.6.7" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "requires": { + "isobject": "^4.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + }, + "react-transition-group": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz", + "integrity": "sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "@material-ui/icons": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.2.1.tgz", + "integrity": "sha512-FvSD5lUBJ66frI4l4AYAPy2CH14Zs2Dgm0o3oOMr33BdQtOAjCgbdOcvPBeaD1w6OQl31uNW3CKOE8xfPNxvUQ==", + "requires": { + "@babel/runtime": "^7.2.0" + } + }, + "@material-ui/styles": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.0.tgz", + "integrity": "sha512-nJHum4RqYBPWsjL/9JET8Z02FZ9gSizlg/7LWVFpIthNzpK6OQ5OSRR4T4x9/p+wK3t1qNn3b1uI4XpnZaPxOA==", + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.7.4", + "@material-ui/types": "^5.0.0", + "@material-ui/utils": "^4.7.1", + "clsx": "^1.0.2", + "csstype": "^2.5.2", + "hoist-non-react-statics": "^3.2.1", + "jss": "^10.0.3", + "jss-plugin-camel-case": "^10.0.3", + "jss-plugin-default-unit": "^10.0.3", + "jss-plugin-global": "^10.0.3", + "jss-plugin-nested": "^10.0.3", + "jss-plugin-props-sort": "^10.0.3", + "jss-plugin-rule-value-function": "^10.0.3", + "jss-plugin-vendor-prefixer": "^10.0.3", + "prop-types": "^15.7.2" + }, + "dependencies": { + "@material-ui/types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.0.0.tgz", + "integrity": "sha512-UeH2BuKkwDndtMSS0qgx1kCzSMw+ydtj0xx/XbFtxNSTlXydKwzs5gVW5ZKsFlAkwoOOQ9TIsyoCC8hq18tOwg==" + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + } + } + }, + "@material-ui/system": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.3.tgz", + "integrity": "sha512-DBGsTKYrLlFpHG8BUp0X6ZpvaOzef+GhSwn/8DwVTXUdHitphaPQoL9xucrI8X9MTBo//El+7nylko7lo7eJIw==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.7.1", + "prop-types": "^15.7.2" + } + }, + "@material-ui/types": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-4.1.1.tgz", + "integrity": "sha512-AN+GZNXytX9yxGi0JOfxHrRTbhFybjUJ05rnsBVjcB+16e466Z0Xe5IxawuOayVZgTBNDxmPKo5j4V6OnMtaSQ==", + "requires": { + "@types/react": "*" + } + }, + "@material-ui/utils": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.7.1.tgz", + "integrity": "sha512-+ux0SlLdlehvzCk2zdQ3KiS3/ylWvuo/JwAGhvb8dFVvwR21K28z0PU9OQW2PGogrMEdvX3miEI5tGxTwwWiwQ==", + "requires": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -1591,6 +1744,21 @@ "@types/node": "*" } }, + "@types/google-maps": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/google-maps/-/google-maps-3.2.2.tgz", + "integrity": "sha512-/XPVfS28VzUdE/HlmBRoe5ii1nNMyWujyRfRY08bD/JgmPlWSiY8enB2dqTe9mlc3kULq7LfFa1wcupM+lQfqA==", + "optional": true, + "requires": { + "@types/googlemaps": "*" + } + }, + "@types/googlemaps": { + "version": "3.37.3", + "resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.37.3.tgz", + "integrity": "sha512-4J1fYJhLnzsfZgeAgrzBfNHFVoZHcWp/rK7oImeV7ZhplL19T1kxCoA4xJTuPfS+sKiN06E+xTvj2K13L7Wc1g==", + "optional": true + }, "@types/istanbul-lib-coverage": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", @@ -1618,6 +1786,15 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==" }, + "@types/markerclustererplus": { + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/@types/markerclustererplus/-/markerclustererplus-2.1.33.tgz", + "integrity": "sha512-ZDxsLUp8BmK9MVZZeQVDDzVrEXgRL0021AQcfXqfreFhdfZ9+PS0P6o4nZBvoIVYTmGSBemdCdI6mL6hf9yWvg==", + "optional": true, + "requires": { + "@types/google-maps": "*" + } + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -1660,6 +1837,14 @@ "@types/react": "*" } }, + "@types/react-transition-group": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz", + "integrity": "sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA==", + "requires": { + "@types/react": "*" + } + }, "@types/stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", @@ -3185,6 +3370,11 @@ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, + "can-use-dom": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", + "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -3234,11 +3424,21 @@ "supports-color": "^5.3.0" } }, + "change-emitter": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", + "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, + "chartist": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/chartist/-/chartist-0.10.1.tgz", + "integrity": "sha1-PdUT1THfymt453f+BQDZx+ZAaTE=" + }, "chokidar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", @@ -3347,6 +3547,11 @@ } } }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, "clean-css": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", @@ -3429,6 +3634,11 @@ "shallow-clone": "^0.1.2" } }, + "clsx": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.0.tgz", + "integrity": "sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -3640,6 +3850,11 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "convert-css-length": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-css-length/-/convert-css-length-2.0.1.tgz", + "integrity": "sha512-iGpbcvhLPRKUbBc0Quxx7w/bV14AC3ItuBEGMahA5WTYqB8lq9jH0kTXFheCBASsYnqeMFZhiTruNxr1N59Axg==" + }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -3943,6 +4158,15 @@ } } }, + "css-vendor": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.7.tgz", + "integrity": "sha512-VS9Rjt79+p7M0WkPqcAza4Yq1ZHrsHrwf7hPL/bjQB+c1lwmAI+1FXxYTYt818D/50fFVflw0XKleiBN5RITkg==", + "requires": { + "@babel/runtime": "^7.6.2", + "is-in-browser": "^1.0.2" + } + }, "css-what": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", @@ -4150,6 +4374,11 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -6030,6 +6259,11 @@ } } }, + "google-maps-infobox": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/google-maps-infobox/-/google-maps-infobox-2.0.0.tgz", + "integrity": "sha512-hTuWmWZZSOxf5D/z7l3/hTF1grgRvLG53BEKMdjiKOG+FcK/kH7vqseUeyIU9Zj2ZIqKTOaro0nknxpAuRq4Vw==" + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -6040,6 +6274,11 @@ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, "gzip-size": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", @@ -6170,6 +6409,19 @@ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" }, + "history": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/history/-/history-4.9.0.tgz", + "integrity": "sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^2.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^0.4.0" + } + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -6258,6 +6510,57 @@ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + } + } + }, "html-minifier-terser": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.4.tgz", @@ -6388,6 +6691,11 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "hyphenate-style-name": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz", + "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -6396,6 +6704,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, "icss-utils": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", @@ -6746,6 +7059,11 @@ "is-extglob": "^2.1.1" } }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -8097,6 +8415,83 @@ "verror": "1.10.0" } }, + "jss": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.4.tgz", + "integrity": "sha512-GqHmeDK83qbqMAVjxyPfN1qJVTKZne533a9bdCrllZukUM8npG/k+JumEPI86IIB5ifaZAHG2HAsUziyxOiooQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^2.6.5", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-camel-case": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.4.tgz", + "integrity": "sha512-+wnqxJsyfUnOn0LxVg3GgZBSjfBCrjxwx7LFxwVTUih0ceGaXKZoieheNOaTo5EM4w8bt1nbb8XonpQCj67C6A==", + "requires": { + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.0.4" + } + }, + "jss-plugin-default-unit": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.4.tgz", + "integrity": "sha512-T0mhL/Ogp/quvod/jAHEqKvptLDxq7Cj3a+7zRuqK8HxUYkftptN89wJElZC3rshhNKiogkEYhCWenpJdFvTBg==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.4" + } + }, + "jss-plugin-global": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.4.tgz", + "integrity": "sha512-N8n9/GHENZce+sqE4UYiZiJtI+t+erT/BypHOrNYAfIoNEj7OYsOEKfIo2P0GpLB3QyDAYf5eo9XNdZ8veEkUA==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.4" + } + }, + "jss-plugin-nested": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.4.tgz", + "integrity": "sha512-QM21BKVt8LDeoRfowvAMh/s+/89VYrreIIE6ch4pvw0oAXDWw1iorUPlqLZ7uCO3UL0uFtQhJq3QMLN6Lr1v0A==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.4", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-props-sort": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.4.tgz", + "integrity": "sha512-WoETdOCjGskuin/OMt2uEdDPLZF3vfQuHXF+XUHGJrq0BAapoyGQDcv37SeReDlkRAbVXkEZPsIMvYrgHSHFiA==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.4" + } + }, + "jss-plugin-rule-value-function": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.4.tgz", + "integrity": "sha512-0hrzOSWRF5ABJGaHrlnHbYZjU877Ofzfh2id3uLtBvemGQLHI+ldoL8/+6iPSRa7M8z8Ngfg2vfYhKjUA5gA0g==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.0.4" + } + }, + "jss-plugin-vendor-prefixer": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.4.tgz", + "integrity": "sha512-4JgEbcrdeMda1qvxTm1CnxFJAWVV++VLpP46HNTrfH7VhVlvUpihnUNs2gAlKuRT/XSBuiWeLAkrTqF4NVrPig==", + "requires": { + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.7", + "jss": "10.0.4" + } + }, "jsx-ast-utils": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", @@ -8106,6 +8501,11 @@ "object.assign": "^4.1.0" } }, + "keycode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -8346,6 +8746,11 @@ "lodash._reinterpolate": "^3.0.0" } }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=" + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -8442,121 +8847,2307 @@ "object-visit": "^1.0.0" } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "marker-clusterer-plus": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/marker-clusterer-plus/-/marker-clusterer-plus-2.1.4.tgz", + "integrity": "sha1-+O/3TVmdqzt9Dj/tUmTqDnBPXWc=" }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } + "markerwithlabel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/markerwithlabel/-/markerwithlabel-2.0.2.tgz", + "integrity": "sha512-C/cbm1A0h/u54gwHk5ZJNdUU3V3+1BbCpRPMsMyFA7vF4yL+aB4rWpxACz29TpQ+cTg6/iQroExh0PMSRGtQFg==" }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "material-dashboard-react": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/material-dashboard-react/-/material-dashboard-react-1.8.0.tgz", + "integrity": "sha512-b+0jcFJWQ/kHCsfgzq9sJZxCT3GyRYDtaGiYYGq/6nBaxrVItslyXQR1L4wmen2rsV2LOHWLespMAKCeQxd/UQ==", + "requires": { + "@material-ui/core": "4.3.2", + "@material-ui/icons": "4.2.1", + "@types/googlemaps": "3.37.3", + "@types/markerclustererplus": "2.1.33", + "ajv": "6.10.2", + "chartist": "0.10.1", + "classnames": "2.2.6", + "history": "4.9.0", + "perfect-scrollbar": "1.4.0", + "prop-types": "15.7.2", + "react": "16.9.0", + "react-chartist": "0.13.3", + "react-dom": "16.9.0", + "react-google-maps": "9.4.5", + "react-router-dom": "5.0.1", + "react-scripts": "3.1.0", + "react-swipeable-views": "0.13.3", + "typescript": "3.5.3" }, "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "@babel/core": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz", + "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helpers": "^7.5.5", + "@babel/parser": "^7.5.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "@csstools/normalize.css": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-9.0.1.tgz", + "integrity": "sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA==" + }, + "@svgr/webpack": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.2.tgz", + "integrity": "sha512-F3VE5OvyOWBEd2bF7BdtFRyI6E9it3mN7teDw0JQTlVtc4HZEYiiLSl+Uf9Uub6IYHVGc+qIrxxDyeedkQru2w==", "requires": { - "safe-buffer": "~5.1.0" + "@babel/core": "^7.4.5", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.4.5", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^4.3.2", + "@svgr/plugin-jsx": "^4.3.2", + "@svgr/plugin-svgo": "^4.3.1", + "loader-utils": "^1.2.3" } - } - } - }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", + }, + "@typescript-eslint/eslint-plugin": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.13.0.tgz", + "integrity": "sha512-WQHCozMnuNADiqMtsNzp96FNox5sOVpU8Xt4meaT4em8lOG1SrOv92/mUbEHQVh90sldKSfcOc/I0FOb/14G1g==", + "requires": { + "@typescript-eslint/experimental-utils": "1.13.0", + "eslint-utils": "^1.3.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^2.0.1", + "tsutils": "^3.7.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", + "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-scope": "^4.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.13.0.tgz", + "integrity": "sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==", + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "1.13.0", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", + "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "requires": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + } + } + }, + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "babel-eslint": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.2.tgz", + "integrity": "sha512-UdsurWPtgiPgpJ06ryUnuaSXC2s0WoSZnQmEpbAH65XZSdwowgN5MvyP7e88nW07FYXv72erVtpBkxyDVKhH1Q==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "^1.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "cacache": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "optional": true + } + } + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "css-loader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", + "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", + "requires": { + "camelcase": "^5.2.0", + "icss-utils": "^4.1.0", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.14", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^2.0.6", + "postcss-modules-scope": "^2.1.0", + "postcss-modules-values": "^2.0.0", + "postcss-value-parser": "^3.3.0", + "schema-utils": "^1.0.0" + } + }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "requires": { + "xregexp": "4.0.0" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==" + }, + "dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", + "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-plugin-flowtype": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", + "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-import": { + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-react": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", + "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==", + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.1.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.10.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", + "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fsevents": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz", + "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==", + "optional": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "html-webpack-plugin": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.5.tgz", + "integrity": "sha512-y5l4lGxOW3pz3xBTFdfB9rnnrWRPVxlAhX6nrBYIcW+2k2zC3mSp/3DxlWVCMBfnO6UAnoF8OcFn0IMy6kaKAQ==", + "requires": { + "html-minifier": "^3.5.20", + "loader-utils": "^1.1.0", + "lodash": "^4.17.11", + "pretty-error": "^2.1.1", + "tapable": "^1.1.0", + "util.promisify": "1.0.0" + } + }, + "inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "jest": { + "version": "24.8.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-24.8.0.tgz", + "integrity": "sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg==", + "requires": { + "import-local": "^2.0.0", + "jest-cli": "^24.8.0" + }, + "dependencies": { + "jest-cli": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", + "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", + "requires": { + "@jest/core": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "import-local": "^2.0.0", + "is-ci": "^2.0.0", + "jest-config": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "prompts": "^2.0.1", + "realpath-native": "^1.1.0", + "yargs": "^13.3.0" + } + } + } + }, + "jest-environment-jsdom-fourteen": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-0.1.0.tgz", + "integrity": "sha512-4vtoRMg7jAstitRzL4nbw83VmGH8Rs13wrND3Ud2o1fczDhMUF32iIrNKwYGgeOPUdfvZU4oy8Bbv+ni1fgVCA==", + "requires": { + "jest-mock": "^24.5.0", + "jest-util": "^24.5.0", + "jsdom": "^14.0.0" + } + }, + "jest-resolve": { + "version": "24.8.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.8.0.tgz", + "integrity": "sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw==", + "requires": { + "@jest/types": "^24.8.0", + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "jest-pnp-resolver": "^1.2.1", + "realpath-native": "^1.1.0" + } + }, + "jest-watch-typeahead": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.3.1.tgz", + "integrity": "sha512-cDIko96c4Yqg/7mfye1eEYZ6Pvugo9mnOOhGQod3Es7/KptNv1b+9gFVaotzdqNqTlwbkA80BnWHtzV4dc+trA==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.4.1", + "jest-watcher": "^24.3.0", + "slash": "^2.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "jsdom": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", + "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", + "requires": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.3", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mini-css-extract-plugin": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz", + "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "requires": { + "find-up": "^2.1.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg==", + "requires": { + "ts-pnp": "^1.1.2" + } + }, + "postcss-browser-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-2.0.0.tgz", + "integrity": "sha512-xGG0UvoxwBc4Yx4JX3gc0RuDl1kc4bVihCzzk6UC72YPfq5fu3c717Nu8Un3nvnq1BJ31gBnFXIG/OaUTnpHgA==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-modules-local-by-default": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", + "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0", + "postcss-value-parser": "^3.3.1" + } + }, + "postcss-modules-values": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", + "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-7.0.1.tgz", + "integrity": "sha512-NOp1fwrG+6kVXWo7P9SizCHX6QvioxFD/hZcI2MLxPmVnFJFC0j0DDpIuNw2tUDeCFMni59gCVgeJ1/hYhj2OQ==", + "requires": { + "@csstools/normalize.css": "^9.0.1", + "browserslist": "^4.1.1", + "postcss": "^7.0.2", + "postcss-browser-comments": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "react": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz", + "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dev-utils": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", + "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", + "requires": { + "@babel/code-frame": "7.5.5", + "address": "1.1.2", + "browserslist": "4.7.0", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "fork-ts-checker-webpack-plugin": "1.5.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "6.5.0", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^6.3.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^6.0.3", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "sockjs-client": "1.4.0", + "strip-ansi": "5.2.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "browserslist": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "requires": { + "caniuse-lite": "^1.0.30000989", + "electron-to-chromium": "^1.3.247", + "node-releases": "^1.1.29" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + } + } + }, + "react-dom": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz", + "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.15.0" + } + }, + "react-scripts": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.1.0.tgz", + "integrity": "sha512-JuccnZ+mKYhufZSxNoikMMX7KKvpq4dhiyR4jzsKDMJIu0fcdcXvjnBWKNMzRKmeXnmbeCjo1K9N/I57ZYpp4w==", + "requires": { + "@babel/core": "7.5.5", + "@svgr/webpack": "4.3.2", + "@typescript-eslint/eslint-plugin": "1.13.0", + "@typescript-eslint/parser": "1.13.0", + "babel-eslint": "10.0.2", + "babel-jest": "^24.8.0", + "babel-loader": "8.0.6", + "babel-plugin-named-asset-import": "^0.3.3", + "babel-preset-react-app": "^9.0.1", + "camelcase": "^5.2.0", + "case-sensitive-paths-webpack-plugin": "2.2.0", + "css-loader": "2.1.1", + "dotenv": "6.2.0", + "dotenv-expand": "4.2.0", + "eslint": "^6.1.0", + "eslint-config-react-app": "^5.0.0", + "eslint-loader": "2.2.1", + "eslint-plugin-flowtype": "3.13.0", + "eslint-plugin-import": "2.18.2", + "eslint-plugin-jsx-a11y": "6.2.3", + "eslint-plugin-react": "7.14.3", + "eslint-plugin-react-hooks": "^1.6.1", + "file-loader": "3.0.1", + "fs-extra": "7.0.1", + "fsevents": "2.0.7", + "html-webpack-plugin": "4.0.0-beta.5", + "identity-obj-proxy": "3.0.0", + "is-wsl": "^1.1.0", + "jest": "24.8.0", + "jest-environment-jsdom-fourteen": "0.1.0", + "jest-resolve": "24.8.0", + "jest-watch-typeahead": "0.3.1", + "mini-css-extract-plugin": "0.5.0", + "optimize-css-assets-webpack-plugin": "5.0.3", + "pnp-webpack-plugin": "1.5.0", + "postcss-flexbugs-fixes": "4.1.0", + "postcss-loader": "3.0.0", + "postcss-normalize": "7.0.1", + "postcss-preset-env": "6.7.0", + "postcss-safe-parser": "4.0.1", + "react-app-polyfill": "^1.0.2", + "react-dev-utils": "^9.0.2", + "resolve": "1.12.0", + "resolve-url-loader": "3.1.0", + "sass-loader": "7.2.0", + "semver": "6.3.0", + "style-loader": "1.0.0", + "terser-webpack-plugin": "1.4.1", + "ts-pnp": "1.1.2", + "url-loader": "2.1.0", + "webpack": "4.39.1", + "webpack-dev-server": "3.2.1", + "webpack-manifest-plugin": "2.0.4", + "workbox-webpack-plugin": "4.3.1" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-url-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.0.tgz", + "integrity": "sha512-2QcrA+2QgVqsMJ1Hn5NnJXIGCX1clQ1F6QJTqOeiaDw9ACo1G2k+8/shq3mtqne03HOFyskAClqfxKyFBriXZg==", + "requires": { + "adjust-sourcemap-loader": "2.0.0", + "camelcase": "5.0.0", + "compose-function": "3.0.3", + "convert-source-map": "1.6.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.14", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "sass-loader": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", + "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^5.5.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "scheduler": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", + "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "style-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", + "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "terser-webpack-plugin": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", + "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "ts-pnp": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.2.tgz", + "integrity": "sha512-f5Knjh7XCyRIzoC/z1Su1yLLRrPrFCgtUAh/9fCSP6NKbATwpOL1+idQVXQokK9GRFURn/jYPGPfegIctwunoA==" + }, + "url-loader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.1.0.tgz", + "integrity": "sha512-kVrp/8VfEm5fUt+fl2E0FQyrpmOYgMEkBsv8+UDP1wFhszECq5JyGF33I7cajlVY90zRZ6MyfgKXngLvHYZX8A==", + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "webpack": { + "version": "4.39.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.1.tgz", + "integrity": "sha512-/LAb2TJ2z+eVwisldp3dqTEoNhzp/TLCZlmZm3GGGAlnfIWDgOEE758j/9atklNLfRyhKbZTCOIoPqLJXeBLbQ==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + } + }, + "webpack-dev-server": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.2.1.tgz", + "integrity": "sha512-sjuE4mnmx6JOh9kvSbPYw3u/6uxCLHNWfhWaIPwcXWsvWOPN+nc5baq4i9jui3oOBRXGonK9+OI0jVkaz6/rCw==", + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^4.1.1", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "^0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.2.0", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "schema-utils": "^1.0.0", + "selfsigned": "^1.9.1", + "semver": "^5.6.0", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.5.1", + "webpack-log": "^2.0.0", + "yargs": "12.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "yargs": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" + } + } + } + }, + "webpack-manifest-plugin": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz", + "integrity": "sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg==", + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "tapable": "^1.0.0" + } + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } + } + } + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", "to-regex": "^3.0.2" }, "dependencies": { @@ -8604,6 +11195,16 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=" }, + "mini-create-react-context": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz", + "integrity": "sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw==", + "requires": { + "@babel/runtime": "^7.4.0", + "gud": "^1.0.0", + "tiny-warning": "^1.0.2" + } + }, "mini-css-extract-plugin": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", @@ -9009,6 +11610,11 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, + "normalize-scroll-left": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-scroll-left/-/normalize-scroll-left-0.2.0.tgz", + "integrity": "sha512-t5oCENZJl8TGusJKoCJm7+asaSsPuNmK6+iEjrZ5TyBj2f02brCRsd4c83hwtu+e5d4LCSBZ0uoDlMjBo+A8yA==" + }, "normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", @@ -9517,6 +12123,11 @@ "sha.js": "^2.4.8" } }, + "perfect-scrollbar": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.4.0.tgz", + "integrity": "sha512-/2Sk/khljhdrsamjJYS5NjrH+GKEHEwh7zFSiYyxROyYKagkE4kSn2zDQDRTOMo8mpT2jikxx6yI1dG7lNP/hw==" + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -9587,6 +12198,11 @@ "ts-pnp": "^1.1.2" } }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, "portfinder": { "version": "1.0.25", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", @@ -10815,6 +13431,14 @@ "whatwg-fetch": "^3.0.0" } }, + "react-chartist": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/react-chartist/-/react-chartist-0.13.3.tgz", + "integrity": "sha512-lHA2JKy6S81/4KNhr1kXXXVyfeSOPVaxLX9Ohf31ntOj7XNGu5392qIvss+zfUWUuj5XCO1fy7w2fUCCUXkjBA==", + "requires": { + "prop-types": "^15.5.8" + } + }, "react-d3-tree": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/react-d3-tree/-/react-d3-tree-1.16.1.tgz", @@ -11032,6 +13656,44 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.6.tgz", "integrity": "sha512-Yzpno3enVzSrSCnnljmr4b/2KUQSMZaPuqmS26t9k4nW7uwJk6STWmH9heNjPuvqUTO3jOSPkHoKgO4+Dw7uIw==" }, + "react-event-listener": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz", + "integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==", + "requires": { + "@babel/runtime": "^7.2.0", + "prop-types": "^15.6.0", + "warning": "^4.0.1" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-google-maps": { + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/react-google-maps/-/react-google-maps-9.4.5.tgz", + "integrity": "sha512-8z5nX9DxIcBCXuEiurmRT1VXVwnzx0C6+3Es6lxB2/OyY2SLax2/LcDu6Aldxnl3HegefTL7NJzGeaKAJ61pOA==", + "requires": { + "babel-runtime": "^6.11.6", + "can-use-dom": "^0.1.0", + "google-maps-infobox": "^2.0.0", + "invariant": "^2.2.1", + "lodash": "^4.16.2", + "marker-clusterer-plus": "^2.1.4", + "markerwithlabel": "^2.0.1", + "prop-types": "^15.5.8", + "recompose": "^0.26.0", + "scriptjs": "^2.5.8", + "warning": "^3.0.0" + } + }, "react-is": { "version": "16.13.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz", @@ -11047,6 +13709,60 @@ "resolved": "https://registry.npmjs.org/react-object-inspector/-/react-object-inspector-0.2.1.tgz", "integrity": "sha1-jsMpUb3ox2sHLvCEp056nS0K63I=" }, + "react-router": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.0.1.tgz", + "integrity": "sha512-EM7suCPNKb1NxcTZ2LEOWFtQBQRQXecLxVpdsP4DW4PbbqYWeRiLyV/Tt1SdCrvT2jcyXAXmVTmzvSzrPR63Bg==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.3.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-dom": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.0.1.tgz", + "integrity": "sha512-zaVHSy7NN0G91/Bz9GD4owex5+eop+KvgbxXsP/O+iW1/Ln+BrJ8QiIR5a6xNPtrdTvLkxqlDClx13QO1uB8CA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.0.1", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, "react-scripts": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.0.tgz", @@ -11107,6 +13823,102 @@ "workbox-webpack-plugin": "4.3.1" } }, + "react-swipeable-views": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/react-swipeable-views/-/react-swipeable-views-0.13.3.tgz", + "integrity": "sha512-LBHRA5ZouipmoLLwi0cqB8qc7NHLskbXmT1I+ZztC9JfmgKrfichw5R+7q4igQ+5VbaP6jL1vn8BtHW96WYNFQ==", + "requires": { + "@babel/runtime": "7.0.0", + "dom-helpers": "^3.2.1", + "prop-types": "^15.5.4", + "react-swipeable-views-core": "^0.13.1", + "react-swipeable-views-utils": "^0.13.3", + "warning": "^4.0.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", + "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==", + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-swipeable-views-core": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/react-swipeable-views-core/-/react-swipeable-views-core-0.13.7.tgz", + "integrity": "sha512-ekn9oDYfBt0oqJSGGwLEhKvn+QaqMGTy//9dURTLf+vp7W5j6GvmKryYdnwJCDITaPFI2hujXV4CH9krhvaE5w==", + "requires": { + "@babel/runtime": "7.0.0", + "warning": "^4.0.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", + "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==", + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-swipeable-views-utils": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.9.tgz", + "integrity": "sha512-QLGxRKrbJCbWz94vkWLzb1Daaa2Y/TZKmsNKQ6WSNrS+chrlfZ3z9tqZ7YUJlW6pRWp3QZdLSY3UE3cN0TXXmw==", + "requires": { + "@babel/runtime": "7.0.0", + "keycode": "^2.1.7", + "prop-types": "^15.6.0", + "react-event-listener": "^0.6.0", + "react-swipeable-views-core": "^0.13.7", + "shallow-equal": "^1.2.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", + "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==", + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + } + } + }, "react-transition-group": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", @@ -11164,6 +13976,24 @@ "util.promisify": "^1.0.0" } }, + "recompose": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", + "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==", + "requires": { + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "symbol-observable": "^1.0.4" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } + } + }, "recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", @@ -11422,6 +14252,11 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" }, + "resolve-pathname": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", + "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -11695,6 +14530,11 @@ "ajv-keywords": "^3.4.1" } }, + "scriptjs": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/scriptjs/-/scriptjs-2.5.9.tgz", + "integrity": "sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg==" + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -11897,6 +14737,11 @@ } } }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -12660,6 +15505,11 @@ "util.promisify": "~1.0.0" } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -12940,6 +15790,16 @@ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -13081,11 +15941,38 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "optional": true + }, "ua-parser-js": { "version": "0.7.21", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -13203,6 +16090,11 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -13316,6 +16208,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-equal": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", + "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -15251,6 +18148,11 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index f79b1d5b79c9c25067ab8843253aeb3f535a3311..c8914e4386b1f405c0decd3f91e6dcbcd454ddd3 100644 --- a/package.json +++ b/package.json @@ -8,12 +8,14 @@ "@testing-library/user-event": "^7.2.1", "ace-builds": "^1.4.8", "axios": "^0.19.2", + "material-dashboard-react": "^1.8.0", "react": "^16.13.0", "react-ace": "^8.0.0", "react-d3-tree": "^1.16.1", "react-dom": "^16.13.0", "react-scripts": "3.4.0", - "terminal-in-react": "^4.3.1" + "terminal-in-react": "^4.3.1", + "prop-types": "latest" }, "scripts": { "start": "react-scripts start", diff --git a/src/App.js b/src/App.js index df8bfd77eed9984e661d7f33d1d66c8916ab5133..6f7a0098eb8ea543547826f079eb1477059c40da 100644 --- a/src/App.js +++ b/src/App.js @@ -7,88 +7,168 @@ import ButtonStrip from './view/ButonStrip' import CodeEditor from './view/CodeEditor' import UserIO from './view/UserIO' import Terminal from 'terminal-in-react'; +import {makeStyles} from "@material-ui/core/styles"; +import Card from "./components/Card/Card.js"; +import CardBody from "./components/Card/CardBody.js"; import {sendWaccCode, astMetaToGraphData} from './Comm' - +import GridItem from "./components/Grid/GridItem"; +import GridContainer from "./components/Grid/GridContainer"; + +const cardImagesStyles = { + cardImgTop: { + width: "100%", + borderTopLeftRadius: "calc(.25rem - 1px)", + borderTopRightRadius: "calc(.25rem - 1px)" + }, + cardImgBottom: { + width: "100%", + borderBottomRightRadius: "calc(.25rem - 1px)", + borderBottomLeftRadius: "calc(.25rem - 1px)" + }, + cardImgOverlay: { + position: "absolute", + top: "0", + right: "0", + bottom: "0", + left: "0", + padding: "1.25rem" + }, + cardImg: { + width: "100%", + borderRadius: "calc(.25rem - 1px)" + } +}; +const useStyles = makeStyles(cardImagesStyles); class App extends React.Component { - constructor(props) { - super(props) - - this.state = { - wacc: {code: "", markers: [],}, - js: {code: "", markers: [],}, - arm: {code: "", markers: [],}, - graphData: [{}], + constructor(props) { + super(props) + + this.state = { + wacc: {code: "", markers: [],}, + js: {code: "", markers: [],}, + arm: {code: "", markers: [],}, + graphData: [{}], + } + } + + onWaccCodeChange = (newCode) => { + this.setState({ + wacc: { + code: newCode, + markers: [{startRow: 0, startCol: 2, endRow: 0, endCol: 20, className: 'warning', type: 'text'}] + }, + graphData: [{}] + }) + } + + readInputCallBack = (input) => { + + console.log(test) + test = ""; + } + + processWaccCode = (code) => { + let rsp = sendWaccCode(code) + let graph = astMetaToGraphData(rsp.astMeta) + + this.setState({ + arm: {code: rsp.armCode}, + js: {code: rsp.jsCode}, + graphData: graph + }) + } + + render() { + return ( +
+ + +
+ + + + + { + this.processWaccCode(this.state.wacc.code) + }} + onStepJsClick={(e) => { + this.setState({js: {code: "Hello World!"}}) + }} + onStepOverAstClick={(e) => { + this.readInputCallBack(e) + }}/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + test = cmd[0] + }} watchConsoleLogging hideTopBar allowTabs={false}/> + + + + + +
+ +
+ +
+ +
+ + +
+ ) } - } - - onWaccCodeChange = (newCode) => { - this.setState({ - wacc: { - code: newCode, - markers: [{ startRow: 0, startCol: 2, endRow: 0, endCol: 20, className: 'warning', type: 'text' }] - }, - graphData: [{}] - }) - } - - readInputCallBack = (input) => { - - console.log(test) - test = ""; - } - - processWaccCode = (code) => { - let rsp = sendWaccCode(code) - let graph = astMetaToGraphData(rsp.astMeta) - - this.setState({ - arm: {code: rsp.armCode}, - js: {code: rsp.jsCode}, - graphData: graph - }) - } - - render() { - return ( -
- { this.processWaccCode(this.state.wacc.code) }} - onStepJsClick={(e) => { this.setState({js: {code: "Hello World!"}}) }} - onStepOverAstClick = {(e) => { this.readInputCallBack(e)}}/> - -
- - - -
- -
- -
-
- {test = cmd[0]}} watchConsoleLogging/> -
- - -
- ) - } } export default App; diff --git a/src/assets/css/material-dashboard-react.css b/src/assets/css/material-dashboard-react.css new file mode 100644 index 0000000000000000000000000000000000000000..c16fc5ce6e7a8d28e783bfb06fa583180a068998 --- /dev/null +++ b/src/assets/css/material-dashboard-react.css @@ -0,0 +1,511 @@ +/*! + + ========================================================= + * Material Dashboard React - v1.8.0 based on Material Dashboard - v1.2.0 + ========================================================= + + * Product Page: http://www.creative-tim.com/product/material-dashboard-react + * Copyright 2019 Creative Tim (http://www.creative-tim.com) + * Licensed under MIT (https://github.com/creativetimofficial/material-dashboard-react/blob/master/LICENSE.md) + + ========================================================= + + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + */ +.ct-grid { + stroke: rgba(255, 255, 255, 0.2); + stroke-width: 1px; + stroke-dasharray: 2px; +} + +.ct-series-a .ct-point, +.ct-series-a .ct-line, +.ct-series-a .ct-bar, +.ct-series-a .ct-slice-donut { + stroke: rgba(255, 255, 255, 0.8); +} + +.ct-label.ct-horizontal.ct-end { + -webkit-box-align: flex-start; + -webkit-align-items: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + -webkit-box-pack: flex-start; + -webkit-justify-content: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; +} + +.ct-label { + color: rgba(255, 255, 255, 0.7); +} + +.ct-chart-line .ct-label, +.ct-chart-bar .ct-label { + display: block; + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} + +.ct-label { + fill: rgba(0, 0, 0, 0.4); + line-height: 1; +} +html * { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +body { + background-color: #eeeeee; + color: #3c4858; + margin: 0; + font-family: Roboto, Helvetica, Arial, sans-serif; + font-weight: 300; + line-height: 1.5em; +} + +blockquote footer:before, +blockquote small:before { + content: "\2014 \00A0"; +} + +small { + font-size: 80%; +} + +h1 { + font-size: 3em; + line-height: 1.15em; +} + +h2 { + font-size: 2.4em; +} + +h3 { + font-size: 1.825em; + line-height: 1.4em; + margin: 20px 0 10px; +} + +h4 { + font-size: 1.3em; + line-height: 1.4em; +} + +h5 { + font-size: 1.25em; + line-height: 1.4em; + margin-bottom: 15px; +} + +h6 { + font-size: 1em; + text-transform: uppercase; + font-weight: 500; +} + +body { + background-color: #eeeeee; + color: #3c4858; +} + +blockquote p { + font-style: italic; +} + +body, +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 300; + line-height: 1.5em; +} + +a { + color: #9c27b0; + text-decoration: none; +} + +a:hover, +a:focus { + color: #89229b; + text-decoration: none; +} + +legend { + border-bottom: 0; +} + +* { + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + -webkit-tap-highlight-color: transparent; +} + +*:focus { + outline: 0; +} + +a:focus, +a:active, +button:active, +button:focus, +button:hover, +button::-moz-focus-inner, +input[type="reset"]::-moz-focus-inner, +input[type="button"]::-moz-focus-inner, +input[type="submit"]::-moz-focus-inner, +select::-moz-focus-inner, +input[type="file"] > input[type="button"]::-moz-focus-inner { + outline: 0 !important; +} + +legend { + margin-bottom: 20px; + font-size: 21px; +} + +output { + padding-top: 8px; + font-size: 14px; + line-height: 1.42857; +} + +label { + font-size: 14px; + line-height: 1.42857; + color: #aaaaaa; + font-weight: 400; +} + +footer { + padding: 15px 0; +} + +footer ul { + margin-bottom: 0; + padding: 0; + list-style: none; +} + +footer ul li { + display: inline-block; +} + +footer ul li a { + color: inherit; + padding: 15px; + font-weight: 500; + font-size: 12px; + text-transform: uppercase; + border-radius: 3px; + text-decoration: none; + position: relative; + display: block; +} + +footer ul li a:hover { + text-decoration: none; +} + +@media (max-width: 991px) { + body, + html { + position: relative; + overflow-x: hidden; + } + + #bodyClick { + height: 100%; + width: 100%; + position: fixed; + opacity: 0; + top: 0; + left: auto; + right: 260px; + content: ""; + z-index: 9999; + overflow-x: hidden; + } +} +.fixed-plugin { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 300; + line-height: 1.5em; + position: fixed; + top: 180px; + right: 0; + width: 64px; + background: rgba(0, 0, 0, 0.3); + z-index: 1031; + border-radius: 8px 0 0 8px; + text-align: center; + top: 120px; + .badge-primary-background-color: #9c27b0; +} + +.fixed-plugin .SocialMediaShareButton, +.fixed-plugin .github-btn { + display: inline-block; +} + +.fixed-plugin li > a, +.fixed-plugin .badge { + transition: all 0.34s; + -webkit-transition: all 0.34s; + -moz-transition: all 0.34s; + text-decoration: none; +} + +.fixed-plugin .fa-cog { + color: #ffffff; + padding: 10px; + border-radius: 0 0 6px 6px; + width: auto; +} + +.fixed-plugin .dropdown-menu { + right: 80px; + left: auto; + width: 290px; + border-radius: 0.1875rem; + padding: 0 10px; + position: absolute; + color: rgba(0, 0, 0, 0.87); + display: inline-block; + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); + background: #fff; + border-radius: 3px; +} + +.fixed-plugin .fa-circle-thin { + color: #ffffff; +} + +.fixed-plugin .active .fa-circle-thin { + color: #00bbff; +} + +.fixed-plugin .dropdown-menu > .active > a, +.fixed-plugin .dropdown-menu > .active > a:hover, +.fixed-plugin .dropdown-menu > .active > a:focus { + color: #777777; + text-align: center; +} + +.fixed-plugin img { + border-radius: 0; + width: 100%; + height: 100px; + margin: 0 auto; +} + +.fixed-plugin .dropdown-menu li > a:hover, +.fixed-plugin .dropdown-menu li > a:focus { + box-shadow: none; +} +.fixed-plugin .badge { + border: 3px solid #ffffff; + border-radius: 50%; + cursor: pointer; + display: inline-block; + height: 23px; + margin-right: 5px; + position: relative; + width: 23px; + background-color: rgba(30, 30, 30, 0.97); +} + +.fixed-plugin .badge.active, +.fixed-plugin .badge:hover { + border-color: #00bbff; +} + +.fixed-plugin .badge-purple { + background-color: #9c27b0; +} + +.fixed-plugin .badge-blue { + background-color: #00bcd4; +} + +.fixed-plugin .badge-green { + background-color: #4caf50; +} + +.fixed-plugin .badge-orange { + background-color: #ff9800; +} + +.fixed-plugin .badge-red { + background-color: #f44336; +} + +.fixed-plugin h5 { + font-size: 14px; + margin: 10px; +} +.fixed-plugin .dropdown-menu li { + display: block; + padding: 4px 0px; + width: 25%; + float: left; +} + +.fixed-plugin li.adjustments-line, +.fixed-plugin li.header-title, +.fixed-plugin li.button-container { + width: 100%; + height: 50px; + min-height: inherit; + padding: 0px; + text-align: center; +} + +.fixed-plugin li.adjustments-line p { + margin: 0; +} + +.fixed-plugin li.adjustments-line div, +.fixed-plugin li.header-title div, +.fixed-plugin li.button-container div { + margin-bottom: 5px; +} +.fixed-plugin li.header-title { + height: 30px; + line-height: 25px; + font-size: 12px; + font-weight: 600; + text-align: center; + text-transform: uppercase; +} + +.fixed-plugin .adjustments-line p { + float: left; + display: inline-block; + margin-bottom: 0; + font-size: 1em; + color: #3c4858; +} + +.fixed-plugin .adjustments-line a { + color: transparent; +} + +.fixed-plugin .adjustments-line a .badge-colors { + position: relative; + top: -2px; +} + +.fixed-plugin .adjustments-line a a:hover, +.fixed-plugin .adjustments-line a a:focus { + color: transparent; +} +.fixed-plugin .adjustments-line .dropdown-menu > li.adjustments-line > a { + padding-right: 0; + padding-left: 0; + border-bottom: 1px solid #ddd; + border-radius: 0; + margin: 0; +} + +.fixed-plugin .dropdown-menu > li > a.img-holder { + font-size: 16px; + text-align: center; + border-radius: 10px; + background-color: #fff; + border: 3px solid #fff; + padding-left: 0; + padding-right: 0; + opacity: 1; + cursor: pointer; + display: block; + max-height: 100px; + overflow: hidden; + padding: 0; +} + +.fixed-plugin .dropdown-menu > li > a.img-holder img { + margin-top: auto; +} +.fixed-plugin .dropdown-menu > li:hover > a.img-holder, +.fixed-plugin .dropdown-menu > li:focus > a.img-holder { + border-color: rgba(0, 187, 255, 0.53); +} + +.fixed-plugin .dropdown-menu > .active > a.img-holder, +.fixed-plugin .dropdown-menu > .active > a.img-holder { + border-color: #00bbff; + background-color: #ffffff; +} +.fixed-plugin .dropdown .dropdown-menu { + -webkit-transform: translateY(-15%); + -moz-transform: translateY(-15%); + -o-transform: translateY(-15%); + -ms-transform: translateY(-15%); + transform: translateY(-15%); + top: 27px; + opacity: 0; + transform-origin: 0 0; + display: none; +} + +.fixed-plugin .dropdown .dropdown-menu:before { + border-bottom: 0.4em solid transparent; + border-left: 0.4em solid rgba(0, 0, 0, 0.2); + border-top: 0.4em solid transparent; + right: -16px; + top: 46px; +} +.fixed-plugin .dropdown .dropdown-menu:after { + border-bottom: 0.4em solid transparent; + border-left: 0.4em solid #ffffff; + border-top: 0.4em solid transparent; + right: -16px; +} + +.fixed-plugin .dropdown .dropdown-menu:before, +.fixed-plugin .dropdown .dropdown-menu:after { + content: ""; + display: inline-block; + position: absolute; + top: 46px; + width: 16px; + transform: translateY(-50%); + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); +} + +.fixed-plugin .dropdown.show .dropdown-menu { + display: block; + visibility: visible; + opacity: 1; + -webkit-transform: translateY(-13%); + -moz-transform: translateY(-13%); + -o-transform: translateY(-13%); + -ms-transform: translateY(-13%); + transform: translateY(-13%); + transform-origin: 0 0; +} +.fixed-plugin.rtl-fixed-plugin { + right: auto; + left: 0px; + border-radius: 0 8px 8px 0; +} +.fixed-plugin.rtl-fixed-plugin .dropdown-menu { + right: auto; + left: 80px; +} +* { + letter-spacing: normal !important; +} diff --git a/src/assets/jss/material-dashboard-react.js b/src/assets/jss/material-dashboard-react.js new file mode 100644 index 0000000000000000000000000000000000000000..f64145a40ea018995e35d7839598125c6104ef43 --- /dev/null +++ b/src/assets/jss/material-dashboard-react.js @@ -0,0 +1,302 @@ +/*! + + ========================================================= + * Material Dashboard React - v1.8.0 based on Material Dashboard - v1.2.0 + ========================================================= + + * Product Page: http://www.creative-tim.com/product/material-dashboard-react + * Copyright 2019 Creative Tim (http://www.creative-tim.com) + * Licensed under MIT (https://github.com/creativetimofficial/material-dashboard-react/blob/master/LICENSE.md) + + ========================================================= + + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + */ + +// ############################## +// // // Function that converts from hex color to rgb color +// // // Example: input = #9c27b0 => output = 156, 39, 176 +// // // Example: input = 9c27b0 => output = 156, 39, 176 +// // // Example: input = #999 => output = 153, 153, 153 +// // // Example: input = 999 => output = 153, 153, 153 +// ############################# +const hexToRgb = input => { + input = input + ""; + input = input.replace("#", ""); + let hexRegex = /[0-9A-Fa-f]/g; + if (!hexRegex.test(input) || (input.length !== 3 && input.length !== 6)) { + throw new Error("input is not a valid hex color."); + } + if (input.length === 3) { + let first = input[0]; + let second = input[1]; + let last = input[2]; + input = first + first + second + second + last + last; + } + input = input.toUpperCase(input); + let first = input[0] + input[1]; + let second = input[2] + input[3]; + let last = input[4] + input[5]; + return ( + parseInt(first, 16) + + ", " + + parseInt(second, 16) + + ", " + + parseInt(last, 16) + ); +}; + +// ############################## +// // // Variables - Styles that are used on more than one component +// ############################# + +const drawerWidth = 260; + +const transition = { + transition: "all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1)" +}; + +const container = { + paddingRight: "15px", + paddingLeft: "15px", + marginRight: "auto", + marginLeft: "auto" +}; + +const defaultFont = { + fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', + fontWeight: "300", + lineHeight: "1.5em" +}; + +const primaryColor = ["#9c27b0", "#ab47bc", "#8e24aa", "#af2cc5"]; +const warningColor = ["#ff9800", "#ffa726", "#fb8c00", "#ffa21a"]; +const dangerColor = ["#f44336", "#ef5350", "#e53935", "#f55a4e"]; +const successColor = ["#4caf50", "#66bb6a", "#43a047", "#5cb860"]; +const infoColor = ["#00acc1", "#26c6da", "#00acc1", "#00d3ee"]; +const roseColor = ["#e91e63", "#ec407a", "#d81b60", "#eb3573"]; +const grayColor = [ + "#999", + "#777", + "#3C4858", + "#AAAAAA", + "#D2D2D2", + "#DDD", + "#b4b4b4", + "#555555", + "#333", + "#a9afbb", + "#eee", + "#e7e7e7" +]; +const blackColor = "#000"; +const whiteColor = "#FFF"; + +const boxShadow = { + boxShadow: + "0 10px 30px -12px rgba(" + + hexToRgb(blackColor) + + ", 0.42), 0 4px 25px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(blackColor) + + ", 0.2)" +}; + +const primaryBoxShadow = { + boxShadow: + "0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.14), 0 7px 10px -5px rgba(" + + hexToRgb(primaryColor[0]) + + ",.4)" +}; +const infoBoxShadow = { + boxShadow: + "0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.14), 0 7px 10px -5px rgba(" + + hexToRgb(infoColor[0]) + + ",.4)" +}; +const successBoxShadow = { + boxShadow: + "0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.14), 0 7px 10px -5px rgba(" + + hexToRgb(successColor[0]) + + ",.4)" +}; +const warningBoxShadow = { + boxShadow: + "0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.14), 0 7px 10px -5px rgba(" + + hexToRgb(warningColor[0]) + + ",.4)" +}; +const dangerBoxShadow = { + boxShadow: + "0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.14), 0 7px 10px -5px rgba(" + + hexToRgb(dangerColor[0]) + + ",.4)" +}; +const roseBoxShadow = { + boxShadow: + "0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.14), 0 7px 10px -5px rgba(" + + hexToRgb(roseColor[0]) + + ",.4)" +}; + +const warningCardHeader = { + background: + "linear-gradient(60deg, " + warningColor[1] + ", " + warningColor[2] + ")", + ...warningBoxShadow +}; +const successCardHeader = { + background: + "linear-gradient(60deg, " + successColor[1] + ", " + successColor[2] + ")", + ...successBoxShadow +}; +const dangerCardHeader = { + background: + "linear-gradient(60deg, " + dangerColor[1] + ", " + dangerColor[2] + ")", + ...dangerBoxShadow +}; +const infoCardHeader = { + background: + "linear-gradient(60deg, " + infoColor[1] + ", " + infoColor[2] + ")", + ...infoBoxShadow +}; +const primaryCardHeader = { + background: + "linear-gradient(60deg, " + primaryColor[1] + ", " + primaryColor[2] + ")", + ...primaryBoxShadow +}; +const roseCardHeader = { + background: + "linear-gradient(60deg, " + roseColor[1] + ", " + roseColor[2] + ")", + ...roseBoxShadow +}; + +const cardActions = { + margin: "0 20px 10px", + paddingTop: "10px", + borderTop: "1px solid " + grayColor[10], + height: "auto", + ...defaultFont +}; + +const cardHeader = { + margin: "-20px 15px 0", + borderRadius: "3px", + padding: "15px" +}; + +const card = { + display: "inline-block", + position: "relative", + width: "100%", + margin: "25px 0", + boxShadow: "0 1px 4px 0 rgba(" + hexToRgb(blackColor) + ", 0.14)", + borderRadius: "3px", + color: "rgba(" + hexToRgb(blackColor) + ", 0.87)", + background: whiteColor +}; + +const defaultBoxShadow = { + border: "0", + borderRadius: "3px", + boxShadow: + "0 10px 20px -12px rgba(" + + hexToRgb(blackColor) + + ", 0.42), 0 3px 20px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(blackColor) + + ", 0.2)", + padding: "10px 0", + transition: "all 150ms ease 0s" +}; + +const title = { + color: grayColor[2], + textDecoration: "none", + fontWeight: "300", + marginTop: "30px", + marginBottom: "25px", + minHeight: "32px", + fontFamily: "'Roboto', 'Helvetica', 'Arial', sans-serif", + "& small": { + color: grayColor[1], + fontWeight: "400", + lineHeight: "1" + } +}; + +const cardTitle = { + ...title, + marginTop: "0", + marginBottom: "3px", + minHeight: "auto", + "& a": { + ...title, + marginTop: ".625rem", + marginBottom: "0.75rem", + minHeight: "auto" + } +}; + +const cardSubtitle = { + marginTop: "-.375rem" +}; + +const cardLink = { + "& + $cardLink": { + marginLeft: "1.25rem" + } +}; + +export { + hexToRgb, + //variables + drawerWidth, + transition, + container, + boxShadow, + card, + defaultFont, + primaryColor, + warningColor, + dangerColor, + successColor, + infoColor, + roseColor, + grayColor, + blackColor, + whiteColor, + primaryBoxShadow, + infoBoxShadow, + successBoxShadow, + warningBoxShadow, + dangerBoxShadow, + roseBoxShadow, + warningCardHeader, + successCardHeader, + dangerCardHeader, + infoCardHeader, + primaryCardHeader, + roseCardHeader, + cardActions, + cardHeader, + defaultBoxShadow, + title, + cardTitle, + cardSubtitle, + cardLink +}; diff --git a/src/assets/jss/material-dashboard-react/cardImagesStyles.js b/src/assets/jss/material-dashboard-react/cardImagesStyles.js new file mode 100644 index 0000000000000000000000000000000000000000..39b34e21e37b31b7ba426f17c9390843b814031f --- /dev/null +++ b/src/assets/jss/material-dashboard-react/cardImagesStyles.js @@ -0,0 +1,26 @@ +const cardImagesStyles = { + cardImgTop: { + width: "100%", + borderTopLeftRadius: "calc(.25rem - 1px)", + borderTopRightRadius: "calc(.25rem - 1px)" + }, + cardImgBottom: { + width: "100%", + borderBottomRightRadius: "calc(.25rem - 1px)", + borderBottomLeftRadius: "calc(.25rem - 1px)" + }, + cardImgOverlay: { + position: "absolute", + top: "0", + right: "0", + bottom: "0", + left: "0", + padding: "1.25rem" + }, + cardImg: { + width: "100%", + borderRadius: "calc(.25rem - 1px)" + } +}; + +export default cardImagesStyles; diff --git a/src/assets/jss/material-dashboard-react/checkboxAdnRadioStyle.js b/src/assets/jss/material-dashboard-react/checkboxAdnRadioStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..5c5ec510136e53aaa722df7467512138a328fe31 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/checkboxAdnRadioStyle.js @@ -0,0 +1,51 @@ +import { + primaryColor, + blackColor, + hexToRgb +} from "assets/jss/material-dashboard-react.js"; + +const checkboxAdnRadioStyle = { + root: { + padding: "13px", + "&:hover": { + backgroundColor: "unset" + } + }, + labelRoot: { + marginLeft: "-14px" + }, + checked: { + color: primaryColor[0] + "!important" + }, + checkedIcon: { + width: "20px", + height: "20px", + border: "1px solid rgba(" + hexToRgb(blackColor) + ", .54)", + borderRadius: "3px" + }, + uncheckedIcon: { + width: "0px", + height: "0px", + padding: "10px", + border: "1px solid rgba(" + hexToRgb(blackColor) + ", .54)", + borderRadius: "3px" + }, + radio: { + color: primaryColor[0] + "!important" + }, + radioChecked: { + width: "20px", + height: "20px", + border: "1px solid " + primaryColor[0], + borderRadius: "50%" + }, + radioUnchecked: { + width: "0px", + height: "0px", + padding: "10px", + border: "1px solid rgba(" + hexToRgb(blackColor) + ", .54)", + borderRadius: "50%" + } +}; + +export default checkboxAdnRadioStyle; diff --git a/src/assets/jss/material-dashboard-react/components/buttonStyle.js b/src/assets/jss/material-dashboard-react/components/buttonStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..d7849520a7b5d1e6b32b6c1047954d71c9a141f8 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/buttonStyle.js @@ -0,0 +1,342 @@ +import { + grayColor, + primaryColor, + infoColor, + successColor, + warningColor, + dangerColor, + roseColor, + whiteColor, + blackColor, + hexToRgb +} from "../../material-dashboard-react.js"; + +const buttonStyle = { + button: { + minHeight: "auto", + minWidth: "auto", + backgroundColor: grayColor[0], + color: whiteColor, + boxShadow: + "0 2px 2px 0 rgba(" + + hexToRgb(grayColor[0]) + + ", 0.14), 0 3px 1px -2px rgba(" + + hexToRgb(grayColor[0]) + + ", 0.2), 0 1px 5px 0 rgba(" + + hexToRgb(grayColor[0]) + + ", 0.12)", + border: "none", + borderRadius: "3px", + position: "relative", + padding: "12px 30px", + margin: ".3125rem 1px", + fontSize: "12px", + fontWeight: "400", + textTransform: "uppercase", + letterSpacing: "0", + willChange: "box-shadow, transform", + transition: + "box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1)", + lineHeight: "1.42857143", + textAlign: "center", + whiteSpace: "nowrap", + verticalAlign: "middle", + touchAction: "manipulation", + cursor: "pointer", + "&:hover,&:focus": { + color: whiteColor, + backgroundColor: grayColor[0], + boxShadow: + "0 14px 26px -12px rgba(" + + hexToRgb(grayColor[0]) + + ", 0.42), 0 4px 23px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(grayColor[0]) + + ", 0.2)" + }, + "& .fab,& .fas,& .far,& .fal, &.material-icons": { + position: "relative", + display: "inline-block", + top: "0", + marginTop: "-1em", + marginBottom: "-1em", + fontSize: "1.1rem", + marginRight: "4px", + verticalAlign: "middle" + }, + "& svg": { + position: "relative", + display: "inline-block", + top: "0", + width: "18px", + height: "18px", + marginRight: "4px", + verticalAlign: "middle" + }, + "&$justIcon": { + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + marginTop: "0px", + position: "absolute", + width: "100%", + transform: "none", + left: "0px", + top: "0px", + height: "100%", + lineHeight: "41px", + fontSize: "20px" + } + } + }, + white: { + "&,&:focus,&:hover": { + backgroundColor: whiteColor, + color: grayColor[0] + } + }, + rose: { + backgroundColor: roseColor[0], + boxShadow: + "0 2px 2px 0 rgba(" + + hexToRgb(roseColor[0]) + + ", 0.14), 0 3px 1px -2px rgba(" + + hexToRgb(roseColor[0]) + + ", 0.2), 0 1px 5px 0 rgba(" + + hexToRgb(roseColor[0]) + + ", 0.12)", + "&:hover,&:focus": { + backgroundColor: roseColor[0], + boxShadow: + "0 14px 26px -12px rgba(" + + hexToRgb(roseColor[0]) + + ", 0.42), 0 4px 23px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(roseColor[0]) + + ", 0.2)" + } + }, + primary: { + backgroundColor: primaryColor[0], + boxShadow: + "0 2px 2px 0 rgba(" + + hexToRgb(primaryColor[0]) + + ", 0.14), 0 3px 1px -2px rgba(" + + hexToRgb(primaryColor[0]) + + ", 0.2), 0 1px 5px 0 rgba(" + + hexToRgb(primaryColor[0]) + + ", 0.12)", + "&:hover,&:focus": { + backgroundColor: primaryColor[0], + boxShadow: + "0 14px 26px -12px rgba(" + + hexToRgb(primaryColor[0]) + + ", 0.42), 0 4px 23px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(primaryColor[0]) + + ", 0.2)" + } + }, + info: { + backgroundColor: infoColor[0], + boxShadow: + "0 2px 2px 0 rgba(" + + hexToRgb(infoColor[0]) + + ", 0.14), 0 3px 1px -2px rgba(" + + hexToRgb(infoColor[0]) + + ", 0.2), 0 1px 5px 0 rgba(" + + hexToRgb(infoColor[0]) + + ", 0.12)", + "&:hover,&:focus": { + backgroundColor: infoColor[0], + boxShadow: + "0 14px 26px -12px rgba(" + + hexToRgb(infoColor[0]) + + ", 0.42), 0 4px 23px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(infoColor[0]) + + ", 0.2)" + } + }, + success: { + backgroundColor: successColor[0], + boxShadow: + "0 2px 2px 0 rgba(" + + hexToRgb(successColor[0]) + + ", 0.14), 0 3px 1px -2px rgba(" + + hexToRgb(successColor[0]) + + ", 0.2), 0 1px 5px 0 rgba(" + + hexToRgb(successColor[0]) + + ", 0.12)", + "&:hover,&:focus": { + backgroundColor: successColor[0], + boxShadow: + "0 14px 26px -12px rgba(" + + hexToRgb(successColor[0]) + + ", 0.42), 0 4px 23px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(successColor[0]) + + ", 0.2)" + } + }, + warning: { + backgroundColor: warningColor[0], + boxShadow: + "0 2px 2px 0 rgba(" + + hexToRgb(warningColor[0]) + + ", 0.14), 0 3px 1px -2px rgba(" + + hexToRgb(warningColor[0]) + + ", 0.2), 0 1px 5px 0 rgba(" + + hexToRgb(warningColor[0]) + + ", 0.12)", + "&:hover,&:focus": { + backgroundColor: warningColor[0], + boxShadow: + "0 14px 26px -12px rgba(" + + hexToRgb(warningColor[0]) + + ", 0.42), 0 4px 23px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(warningColor[0]) + + ", 0.2)" + } + }, + danger: { + backgroundColor: dangerColor[0], + boxShadow: + "0 2px 2px 0 rgba(" + + hexToRgb(dangerColor[0]) + + ", 0.14), 0 3px 1px -2px rgba(" + + hexToRgb(dangerColor[0]) + + ", 0.2), 0 1px 5px 0 rgba(" + + hexToRgb(dangerColor[0]) + + ", 0.12)", + "&:hover,&:focus": { + backgroundColor: dangerColor[0], + boxShadow: + "0 14px 26px -12px rgba(" + + hexToRgb(dangerColor[0]) + + ", 0.42), 0 4px 23px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(dangerColor[0]) + + ", 0.2)" + } + }, + simple: { + "&,&:focus,&:hover": { + color: whiteColor, + background: "transparent", + boxShadow: "none" + }, + "&$rose": { + "&,&:focus,&:hover,&:visited": { + color: roseColor[0] + } + }, + "&$primary": { + "&,&:focus,&:hover,&:visited": { + color: primaryColor[0] + } + }, + "&$info": { + "&,&:focus,&:hover,&:visited": { + color: infoColor[0] + } + }, + "&$success": { + "&,&:focus,&:hover,&:visited": { + color: successColor[0] + } + }, + "&$warning": { + "&,&:focus,&:hover,&:visited": { + color: warningColor[0] + } + }, + "&$danger": { + "&,&:focus,&:hover,&:visited": { + color: dangerColor[0] + } + } + }, + transparent: { + "&,&:focus,&:hover": { + color: "inherit", + background: "transparent", + boxShadow: "none" + } + }, + disabled: { + opacity: "0.65", + pointerEvents: "none" + }, + lg: { + padding: "1.125rem 2.25rem", + fontSize: "0.875rem", + lineHeight: "1.333333", + borderRadius: "0.2rem" + }, + sm: { + padding: "0.40625rem 1.25rem", + fontSize: "0.6875rem", + lineHeight: "1.5", + borderRadius: "0.2rem" + }, + round: { + borderRadius: "30px" + }, + block: { + width: "100% !important" + }, + link: { + "&,&:hover,&:focus": { + backgroundColor: "transparent", + color: grayColor[0], + boxShadow: "none" + } + }, + justIcon: { + paddingLeft: "12px", + paddingRight: "12px", + fontSize: "20px", + height: "41px", + minWidth: "41px", + width: "41px", + "& .fab,& .fas,& .far,& .fal,& svg,& .material-icons": { + marginRight: "0px" + }, + "&$lg": { + height: "57px", + minWidth: "57px", + width: "57px", + lineHeight: "56px", + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + fontSize: "32px", + lineHeight: "56px" + }, + "& svg": { + width: "32px", + height: "32px" + } + }, + "&$sm": { + height: "30px", + minWidth: "30px", + width: "30px", + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + fontSize: "17px", + lineHeight: "29px" + }, + "& svg": { + width: "17px", + height: "17px" + } + } + } +}; + +export default buttonStyle; diff --git a/src/assets/jss/material-dashboard-react/components/cardAvatarStyle.js b/src/assets/jss/material-dashboard-react/components/cardAvatarStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..2be7e5a3ed3a5dde6342d10f5d100447263413e9 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/cardAvatarStyle.js @@ -0,0 +1,32 @@ +import { hexToRgb, blackColor } from "assets/jss/material-dashboard-react.js"; + +const cardAvatarStyle = { + cardAvatar: { + "&$cardAvatarProfile img": { + width: "100%", + height: "auto" + } + }, + cardAvatarProfile: { + maxWidth: "130px", + maxHeight: "130px", + margin: "-50px auto 0", + borderRadius: "50%", + overflow: "hidden", + padding: "0", + boxShadow: + "0 16px 38px -12px rgba(" + + hexToRgb(blackColor) + + ", 0.56), 0 4px 25px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 8px 10px -5px rgba(" + + hexToRgb(blackColor) + + ", 0.2)", + "&$cardAvatarPlain": { + marginTop: "0" + } + }, + cardAvatarPlain: {} +}; + +export default cardAvatarStyle; diff --git a/src/assets/jss/material-dashboard-react/components/cardBodyStyle.js b/src/assets/jss/material-dashboard-react/components/cardBodyStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..cfc0005a050b3c443704114876b99e7fa6f8a18d --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/cardBodyStyle.js @@ -0,0 +1,17 @@ +const cardBodyStyle = { + cardBody: { + padding: "0.9375rem 20px", + flex: "1 1 auto", + WebkitBoxFlex: "1", + position: "relative" + }, + cardBodyPlain: { + paddingLeft: "5px", + paddingRight: "5px" + }, + cardBodyProfile: { + marginTop: "15px" + } +}; + +export default cardBodyStyle; diff --git a/src/assets/jss/material-dashboard-react/components/cardFooterStyle.js b/src/assets/jss/material-dashboard-react/components/cardFooterStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..1bed25c89b2b00b35dc68fe48659e514b8038172 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/cardFooterStyle.js @@ -0,0 +1,47 @@ +import { grayColor } from "assets/jss/material-dashboard-react.js"; + +const cardFooterStyle = { + cardFooter: { + padding: "0", + paddingTop: "10px", + margin: "0 15px 10px", + borderRadius: "0", + justifyContent: "space-between", + alignItems: "center", + display: "flex", + backgroundColor: "transparent", + border: "0" + }, + cardFooterProfile: { + marginTop: "-15px" + }, + cardFooterPlain: { + paddingLeft: "5px", + paddingRight: "5px", + backgroundColor: "transparent" + }, + cardFooterStats: { + borderTop: "1px solid " + grayColor[10], + marginTop: "20px", + "& svg": { + position: "relative", + top: "4px", + marginRight: "3px", + marginLeft: "3px", + width: "16px", + height: "16px" + }, + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + fontSize: "16px", + position: "relative", + top: "4px", + marginRight: "3px", + marginLeft: "3px" + } + }, + cardFooterChart: { + borderTop: "1px solid " + grayColor[10] + } +}; + +export default cardFooterStyle; diff --git a/src/assets/jss/material-dashboard-react/components/cardHeaderStyle.js b/src/assets/jss/material-dashboard-react/components/cardHeaderStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..a16a7d706e10ad3229bb800f47dd99ff1a4bd3d2 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/cardHeaderStyle.js @@ -0,0 +1,124 @@ +import { + warningCardHeader, + successCardHeader, + dangerCardHeader, + infoCardHeader, + primaryCardHeader, + roseCardHeader, + whiteColor +} from "assets/jss/material-dashboard-react.js"; + +const cardHeaderStyle = { + cardHeader: { + padding: "0.75rem 1.25rem", + marginBottom: "0", + borderBottom: "none", + background: "transparent", + zIndex: "3 !important", + "&$cardHeaderPlain,&$cardHeaderIcon,&$cardHeaderStats,&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader": { + margin: "0 15px", + padding: "0", + position: "relative", + color: whiteColor + }, + "&:first-child": { + borderRadius: "calc(.25rem - 1px) calc(.25rem - 1px) 0 0" + }, + "&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader": { + "&:not($cardHeaderIcon)": { + borderRadius: "3px", + marginTop: "-20px", + padding: "15px" + } + }, + "&$cardHeaderStats svg": { + fontSize: "36px", + lineHeight: "56px", + textAlign: "center", + width: "36px", + height: "36px", + margin: "10px 10px 4px" + }, + "&$cardHeaderStats i,&$cardHeaderStats .material-icons": { + fontSize: "36px", + lineHeight: "56px", + width: "56px", + height: "56px", + textAlign: "center", + overflow: "unset", + marginBottom: "1px" + }, + "&$cardHeaderStats$cardHeaderIcon": { + textAlign: "right" + } + }, + cardHeaderPlain: { + marginLeft: "0px !important", + marginRight: "0px !important" + }, + cardHeaderStats: { + "& $cardHeaderIcon": { + textAlign: "right" + }, + "& h1,& h2,& h3,& h4,& h5,& h6": { + margin: "0 !important" + } + }, + cardHeaderIcon: { + "&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader": { + background: "transparent", + boxShadow: "none" + }, + "& i,& .material-icons": { + width: "33px", + height: "33px", + textAlign: "center", + lineHeight: "33px" + }, + "& svg": { + width: "24px", + height: "24px", + textAlign: "center", + lineHeight: "33px", + margin: "5px 4px 0px" + } + }, + warningCardHeader: { + color: whiteColor, + "&:not($cardHeaderIcon)": { + ...warningCardHeader + } + }, + successCardHeader: { + color: whiteColor, + "&:not($cardHeaderIcon)": { + ...successCardHeader + } + }, + dangerCardHeader: { + color: whiteColor, + "&:not($cardHeaderIcon)": { + ...dangerCardHeader + } + }, + infoCardHeader: { + color: whiteColor, + "&:not($cardHeaderIcon)": { + ...infoCardHeader + } + }, + primaryCardHeader: { + color: whiteColor, + "&:not($cardHeaderIcon)": { + ...primaryCardHeader + } + }, + roseCardHeader: { + color: whiteColor, + "&:not($cardHeaderIcon)": { + ...roseCardHeader + } + } +}; + +export default cardHeaderStyle; diff --git a/src/assets/jss/material-dashboard-react/components/cardIconStyle.js b/src/assets/jss/material-dashboard-react/components/cardIconStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..55715f1e520adcf1fe81064f4c0ec5df468ef647 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/cardIconStyle.js @@ -0,0 +1,30 @@ +import { + warningCardHeader, + successCardHeader, + dangerCardHeader, + infoCardHeader, + primaryCardHeader, + roseCardHeader, + grayColor +} from "assets/jss/material-dashboard-react.js"; + +const cardIconStyle = { + cardIcon: { + "&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader": { + borderRadius: "3px", + backgroundColor: grayColor[0], + padding: "15px", + marginTop: "-20px", + marginRight: "15px", + float: "left" + } + }, + warningCardHeader, + successCardHeader, + dangerCardHeader, + infoCardHeader, + primaryCardHeader, + roseCardHeader +}; + +export default cardIconStyle; diff --git a/src/assets/jss/material-dashboard-react/components/cardStyle.js b/src/assets/jss/material-dashboard-react/components/cardStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..4efe7940d62f4139014d9edd0aae0ca6350fe78f --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/cardStyle.js @@ -0,0 +1,40 @@ +import { + blackColor, + whiteColor, + hexToRgb +} from "../../material-dashboard-react.js"; + +const cardStyle = { + card: { + border: "0", + marginBottom: "30px", + marginTop: "30px", + borderRadius: "6px", + color: "rgba(" + hexToRgb(blackColor) + ", 0.87)", + background: whiteColor, + width: "100%", + boxShadow: "0 1px 4px 0 rgba(" + hexToRgb(blackColor) + ", 0.14)", + position: "relative", + display: "flex", + flexDirection: "column", + minWidth: "0", + wordWrap: "break-word", + fontSize: ".875rem" + }, + cardPlain: { + background: "transparent", + boxShadow: "none" + }, + cardProfile: { + marginTop: "30px", + textAlign: "center" + }, + cardChart: { + "& p": { + marginTop: "0px", + paddingTop: "0px" + } + } +}; + +export default cardStyle; diff --git a/src/assets/jss/material-dashboard-react/components/customInputStyle.js b/src/assets/jss/material-dashboard-react/components/customInputStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..ea3165df7772095a66fa381eb97f799c2c244f2e --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/customInputStyle.js @@ -0,0 +1,70 @@ +import { + primaryColor, + dangerColor, + successColor, + grayColor, + defaultFont +} from "assets/jss/material-dashboard-react.js"; + +const customInputStyle = { + disabled: { + "&:before": { + backgroundColor: "transparent !important" + } + }, + underline: { + "&:hover:not($disabled):before,&:before": { + borderColor: grayColor[4] + " !important", + borderWidth: "1px !important" + }, + "&:after": { + borderColor: primaryColor[0] + } + }, + underlineError: { + "&:after": { + borderColor: dangerColor[0] + } + }, + underlineSuccess: { + "&:after": { + borderColor: successColor[0] + } + }, + labelRoot: { + ...defaultFont, + color: grayColor[3] + " !important", + fontWeight: "400", + fontSize: "14px", + lineHeight: "1.42857", + letterSpacing: "unset" + }, + labelRootError: { + color: dangerColor[0] + }, + labelRootSuccess: { + color: successColor[0] + }, + feedback: { + position: "absolute", + top: "18px", + right: "0", + zIndex: "2", + display: "block", + width: "24px", + height: "24px", + textAlign: "center", + pointerEvents: "none" + }, + marginTop: { + marginTop: "16px" + }, + formControl: { + paddingBottom: "10px", + margin: "27px 0 0 0", + position: "relative", + verticalAlign: "unset" + } +}; + +export default customInputStyle; diff --git a/src/assets/jss/material-dashboard-react/components/customTabsStyle.js b/src/assets/jss/material-dashboard-react/components/customTabsStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..472ccb1ac95bb8be745e53f5e315cd032146f4bd --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/customTabsStyle.js @@ -0,0 +1,62 @@ +import { hexToRgb, whiteColor } from "assets/jss/material-dashboard-react.js"; + +const customTabsStyle = { + cardTitle: { + float: "left", + padding: "10px 10px 10px 0px", + lineHeight: "24px" + }, + cardTitleRTL: { + float: "right", + padding: "10px 0px 10px 10px !important" + }, + displayNone: { + display: "none !important" + }, + tabsRoot: { + minHeight: "unset !important", + overflowX: "visible", + "& $tabRootButton": { + fontSize: "0.875rem" + } + }, + tabRootButton: { + minHeight: "unset !important", + minWidth: "unset !important", + width: "unset !important", + height: "unset !important", + maxWidth: "unset !important", + maxHeight: "unset !important", + padding: "10px 15px", + borderRadius: "3px", + lineHeight: "24px", + border: "0 !important", + color: whiteColor + " !important", + marginLeft: "4px", + "&:last-child": { + marginLeft: "0px" + } + }, + tabSelected: { + backgroundColor: "rgba(" + hexToRgb(whiteColor) + ", 0.2)", + transition: "0.2s background-color 0.1s" + }, + tabWrapper: { + display: "inline-block", + minHeight: "unset !important", + minWidth: "unset !important", + width: "unset !important", + height: "unset !important", + maxWidth: "unset !important", + maxHeight: "unset !important", + fontWeight: "500", + fontSize: "12px", + marginTop: "1px", + "& > svg,& > .material-icons": { + verticalAlign: "middle", + margin: "-1px 5px 0 0 !important" + } + } +}; + +export default customTabsStyle; diff --git a/src/assets/jss/material-dashboard-react/components/footerStyle.js b/src/assets/jss/material-dashboard-react/components/footerStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..9d7aa9aab48adcbc3cfdc432dd8d2e2330ee8746 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/footerStyle.js @@ -0,0 +1,54 @@ +import { + defaultFont, + container, + primaryColor, + grayColor +} from "assets/jss/material-dashboard-react.js"; + +const footerStyle = { + block: { + color: "inherit", + padding: "15px", + textTransform: "uppercase", + borderRadius: "3px", + textDecoration: "none", + position: "relative", + display: "block", + ...defaultFont, + fontWeight: "500", + fontSize: "12px" + }, + left: { + float: "left!important", + display: "block" + }, + right: { + padding: "15px 0", + margin: "0", + fontSize: "14px", + float: "right!important" + }, + footer: { + bottom: "0", + borderTop: "1px solid " + grayColor[11], + padding: "15px 0", + ...defaultFont + }, + container, + a: { + color: primaryColor, + textDecoration: "none", + backgroundColor: "transparent" + }, + list: { + marginBottom: "0", + padding: "0", + marginTop: "0" + }, + inlineBlock: { + display: "inline-block", + padding: "0px", + width: "auto" + } +}; +export default footerStyle; diff --git a/src/assets/jss/material-dashboard-react/components/headerLinksStyle.js b/src/assets/jss/material-dashboard-react/components/headerLinksStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..fcd3da4ff89003fab844610e43812be6f7649fb0 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/headerLinksStyle.js @@ -0,0 +1,113 @@ +import { + defaultFont, + dangerColor, + whiteColor +} from "assets/jss/material-dashboard-react.js"; + +import dropdownStyle from "assets/jss/material-dashboard-react/dropdownStyle.js"; + +const headerLinksStyle = theme => ({ + ...dropdownStyle(theme), + search: { + "& > div": { + marginTop: "0" + }, + [theme.breakpoints.down("sm")]: { + margin: "10px 15px !important", + float: "none !important", + paddingTop: "1px", + paddingBottom: "1px", + padding: "0!important", + width: "60%", + marginTop: "40px", + "& input": { + color: whiteColor + } + } + }, + linkText: { + zIndex: "4", + ...defaultFont, + fontSize: "14px", + margin: "0px" + }, + buttonLink: { + [theme.breakpoints.down("sm")]: { + display: "flex", + margin: "10px 15px 0", + width: "-webkit-fill-available", + "& svg": { + width: "24px", + height: "30px", + marginRight: "15px", + marginLeft: "-15px" + }, + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + fontSize: "24px", + lineHeight: "30px", + width: "24px", + height: "30px", + marginRight: "15px", + marginLeft: "-15px" + }, + "& > span": { + justifyContent: "flex-start", + width: "100%" + } + } + }, + searchButton: { + [theme.breakpoints.down("sm")]: { + top: "-50px !important", + marginRight: "22px", + float: "right" + } + }, + margin: { + zIndex: "4", + margin: "0" + }, + searchIcon: { + width: "17px", + zIndex: "4" + }, + notifications: { + zIndex: "4", + [theme.breakpoints.up("md")]: { + position: "absolute", + top: "2px", + border: "1px solid " + whiteColor, + right: "4px", + fontSize: "9px", + background: dangerColor[0], + color: whiteColor, + minWidth: "16px", + height: "16px", + borderRadius: "10px", + textAlign: "center", + lineHeight: "16px", + verticalAlign: "middle", + display: "block" + }, + [theme.breakpoints.down("sm")]: { + ...defaultFont, + fontSize: "14px", + marginRight: "8px" + } + }, + manager: { + [theme.breakpoints.down("sm")]: { + width: "100%" + }, + display: "inline-block" + }, + searchWrapper: { + [theme.breakpoints.down("sm")]: { + width: "-webkit-fill-available", + margin: "10px 15px 0" + }, + display: "inline-block" + } +}); + +export default headerLinksStyle; diff --git a/src/assets/jss/material-dashboard-react/components/headerStyle.js b/src/assets/jss/material-dashboard-react/components/headerStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..99a9b366a0002f2528a4c918430281373d573d6d --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/headerStyle.js @@ -0,0 +1,82 @@ +import { + container, + defaultFont, + primaryColor, + defaultBoxShadow, + infoColor, + successColor, + warningColor, + dangerColor, + whiteColor, + grayColor +} from "assets/jss/material-dashboard-react.js"; + +const headerStyle = () => ({ + appBar: { + backgroundColor: "transparent", + boxShadow: "none", + borderBottom: "0", + marginBottom: "0", + position: "absolute", + width: "100%", + paddingTop: "10px", + zIndex: "1029", + color: grayColor[7], + border: "0", + borderRadius: "3px", + padding: "10px 0", + transition: "all 150ms ease 0s", + minHeight: "50px", + display: "block" + }, + container: { + ...container, + minHeight: "50px" + }, + flex: { + flex: 1 + }, + title: { + ...defaultFont, + letterSpacing: "unset", + lineHeight: "30px", + fontSize: "18px", + borderRadius: "3px", + textTransform: "none", + color: "inherit", + margin: "0", + "&:hover,&:focus": { + background: "transparent" + } + }, + appResponsive: { + top: "8px" + }, + primary: { + backgroundColor: primaryColor[0], + color: whiteColor, + ...defaultBoxShadow + }, + info: { + backgroundColor: infoColor[0], + color: whiteColor, + ...defaultBoxShadow + }, + success: { + backgroundColor: successColor[0], + color: whiteColor, + ...defaultBoxShadow + }, + warning: { + backgroundColor: warningColor[0], + color: whiteColor, + ...defaultBoxShadow + }, + danger: { + backgroundColor: dangerColor[0], + color: whiteColor, + ...defaultBoxShadow + } +}); + +export default headerStyle; diff --git a/src/assets/jss/material-dashboard-react/components/rtlHeaderLinksStyle.js b/src/assets/jss/material-dashboard-react/components/rtlHeaderLinksStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..fcd3da4ff89003fab844610e43812be6f7649fb0 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/rtlHeaderLinksStyle.js @@ -0,0 +1,113 @@ +import { + defaultFont, + dangerColor, + whiteColor +} from "assets/jss/material-dashboard-react.js"; + +import dropdownStyle from "assets/jss/material-dashboard-react/dropdownStyle.js"; + +const headerLinksStyle = theme => ({ + ...dropdownStyle(theme), + search: { + "& > div": { + marginTop: "0" + }, + [theme.breakpoints.down("sm")]: { + margin: "10px 15px !important", + float: "none !important", + paddingTop: "1px", + paddingBottom: "1px", + padding: "0!important", + width: "60%", + marginTop: "40px", + "& input": { + color: whiteColor + } + } + }, + linkText: { + zIndex: "4", + ...defaultFont, + fontSize: "14px", + margin: "0px" + }, + buttonLink: { + [theme.breakpoints.down("sm")]: { + display: "flex", + margin: "10px 15px 0", + width: "-webkit-fill-available", + "& svg": { + width: "24px", + height: "30px", + marginRight: "15px", + marginLeft: "-15px" + }, + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + fontSize: "24px", + lineHeight: "30px", + width: "24px", + height: "30px", + marginRight: "15px", + marginLeft: "-15px" + }, + "& > span": { + justifyContent: "flex-start", + width: "100%" + } + } + }, + searchButton: { + [theme.breakpoints.down("sm")]: { + top: "-50px !important", + marginRight: "22px", + float: "right" + } + }, + margin: { + zIndex: "4", + margin: "0" + }, + searchIcon: { + width: "17px", + zIndex: "4" + }, + notifications: { + zIndex: "4", + [theme.breakpoints.up("md")]: { + position: "absolute", + top: "2px", + border: "1px solid " + whiteColor, + right: "4px", + fontSize: "9px", + background: dangerColor[0], + color: whiteColor, + minWidth: "16px", + height: "16px", + borderRadius: "10px", + textAlign: "center", + lineHeight: "16px", + verticalAlign: "middle", + display: "block" + }, + [theme.breakpoints.down("sm")]: { + ...defaultFont, + fontSize: "14px", + marginRight: "8px" + } + }, + manager: { + [theme.breakpoints.down("sm")]: { + width: "100%" + }, + display: "inline-block" + }, + searchWrapper: { + [theme.breakpoints.down("sm")]: { + width: "-webkit-fill-available", + margin: "10px 15px 0" + }, + display: "inline-block" + } +}); + +export default headerLinksStyle; diff --git a/src/assets/jss/material-dashboard-react/components/sidebarStyle.js b/src/assets/jss/material-dashboard-react/components/sidebarStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..517144d4325d22bc7b095a93a1f9c429cf64ae02 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/sidebarStyle.js @@ -0,0 +1,301 @@ +import { + drawerWidth, + transition, + boxShadow, + defaultFont, + primaryColor, + primaryBoxShadow, + infoColor, + successColor, + warningColor, + dangerColor, + whiteColor, + grayColor, + blackColor, + hexToRgb +} from "assets/jss/material-dashboard-react.js"; + +const sidebarStyle = theme => ({ + drawerPaper: { + border: "none", + position: "fixed", + top: "0", + bottom: "0", + left: "0", + zIndex: "1", + ...boxShadow, + width: drawerWidth, + [theme.breakpoints.up("md")]: { + width: drawerWidth, + position: "fixed", + height: "100%" + }, + [theme.breakpoints.down("sm")]: { + width: drawerWidth, + ...boxShadow, + position: "fixed", + display: "block", + top: "0", + height: "100vh", + right: "0", + left: "auto", + zIndex: "1032", + visibility: "visible", + overflowY: "visible", + borderTop: "none", + textAlign: "left", + paddingRight: "0px", + paddingLeft: "0", + transform: `translate3d(${drawerWidth}px, 0, 0)`, + ...transition + } + }, + drawerPaperRTL: { + [theme.breakpoints.up("md")]: { + left: "auto !important", + right: "0 !important" + }, + [theme.breakpoints.down("sm")]: { + left: "0 !important", + right: "auto !important" + } + }, + logo: { + position: "relative", + padding: "15px 15px", + zIndex: "4", + "&:after": { + content: '""', + position: "absolute", + bottom: "0", + + height: "1px", + right: "15px", + width: "calc(100% - 30px)", + backgroundColor: "rgba(" + hexToRgb(grayColor[6]) + ", 0.3)" + } + }, + logoLink: { + ...defaultFont, + textTransform: "uppercase", + padding: "5px 0", + display: "block", + fontSize: "18px", + textAlign: "left", + fontWeight: "400", + lineHeight: "30px", + textDecoration: "none", + backgroundColor: "transparent", + "&,&:hover": { + color: whiteColor + } + }, + logoLinkRTL: { + textAlign: "right" + }, + logoImage: { + width: "30px", + display: "inline-block", + maxHeight: "30px", + marginLeft: "10px", + marginRight: "15px" + }, + img: { + width: "35px", + top: "22px", + position: "absolute", + verticalAlign: "middle", + border: "0" + }, + background: { + position: "absolute", + zIndex: "1", + height: "100%", + width: "100%", + display: "block", + top: "0", + left: "0", + backgroundSize: "cover", + backgroundPosition: "center center", + "&:after": { + position: "absolute", + zIndex: "3", + width: "100%", + height: "100%", + content: '""', + display: "block", + background: blackColor, + opacity: ".8" + } + }, + list: { + marginTop: "20px", + paddingLeft: "0", + paddingTop: "0", + paddingBottom: "0", + marginBottom: "0", + listStyle: "none", + position: "unset" + }, + item: { + position: "relative", + display: "block", + textDecoration: "none", + "&:hover,&:focus,&:visited,&": { + color: whiteColor + } + }, + itemLink: { + width: "auto", + transition: "all 300ms linear", + margin: "10px 15px 0", + borderRadius: "3px", + position: "relative", + display: "block", + padding: "10px 15px", + backgroundColor: "transparent", + ...defaultFont + }, + itemIcon: { + width: "24px", + height: "30px", + fontSize: "24px", + lineHeight: "30px", + float: "left", + marginRight: "15px", + textAlign: "center", + verticalAlign: "middle", + color: "rgba(" + hexToRgb(whiteColor) + ", 0.8)" + }, + itemIconRTL: { + marginRight: "3px", + marginLeft: "15px", + float: "right" + }, + itemText: { + ...defaultFont, + margin: "0", + lineHeight: "30px", + fontSize: "14px", + color: whiteColor + }, + itemTextRTL: { + textAlign: "right" + }, + whiteFont: { + color: whiteColor + }, + purple: { + backgroundColor: primaryColor[0], + ...primaryBoxShadow, + "&:hover,&:focus": { + backgroundColor: primaryColor[0], + ...primaryBoxShadow + } + }, + blue: { + backgroundColor: infoColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(infoColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(infoColor[0]) + + ",.2)", + "&:hover,&:focus": { + backgroundColor: infoColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(infoColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(infoColor[0]) + + ",.2)" + } + }, + green: { + backgroundColor: successColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(successColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(successColor[0]) + + ",.2)", + "&:hover,&:focus": { + backgroundColor: successColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(successColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(successColor[0]) + + ",.2)" + } + }, + orange: { + backgroundColor: warningColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(warningColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(warningColor[0]) + + ",.2)", + "&:hover,&:focus": { + backgroundColor: warningColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(warningColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(warningColor[0]) + + ",.2)" + } + }, + red: { + backgroundColor: dangerColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(dangerColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(dangerColor[0]) + + ",.2)", + "&:hover,&:focus": { + backgroundColor: dangerColor[0], + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(dangerColor[0]) + + ",.28), 0 4px 20px 0 rgba(" + + hexToRgb(blackColor) + + ",.12), 0 7px 8px -5px rgba(" + + hexToRgb(dangerColor[0]) + + ",.2)" + } + }, + sidebarWrapper: { + position: "relative", + height: "calc(100vh - 75px)", + overflow: "auto", + width: "260px", + zIndex: "4", + overflowScrolling: "touch" + }, + activePro: { + [theme.breakpoints.up("md")]: { + position: "absolute", + width: "100%", + bottom: "13px" + } + } +}); + +export default sidebarStyle; diff --git a/src/assets/jss/material-dashboard-react/components/snackbarContentStyle.js b/src/assets/jss/material-dashboard-react/components/snackbarContentStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..d10fbc1e0e90c699fc9d4f67d1d82851f822fff7 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/snackbarContentStyle.js @@ -0,0 +1,131 @@ +import { + defaultFont, + primaryBoxShadow, + infoBoxShadow, + successBoxShadow, + warningBoxShadow, + dangerBoxShadow, + roseBoxShadow, + whiteColor, + blackColor, + grayColor, + infoColor, + successColor, + dangerColor, + roseColor, + primaryColor, + warningColor, + hexToRgb +} from "assets/jss/material-dashboard-react.js"; + +const snackbarContentStyle = { + root: { + ...defaultFont, + flexWrap: "unset", + position: "relative", + padding: "20px 15px", + lineHeight: "20px", + marginBottom: "20px", + fontSize: "14px", + backgroundColor: whiteColor, + color: grayColor[7], + borderRadius: "3px", + minWidth: "unset", + maxWidth: "unset", + boxShadow: + "0 12px 20px -10px rgba(" + + hexToRgb(whiteColor) + + ", 0.28), 0 4px 20px 0px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 7px 8px -5px rgba(" + + hexToRgb(whiteColor) + + ", 0.2)" + }, + top20: { + top: "20px" + }, + top40: { + top: "40px" + }, + info: { + backgroundColor: infoColor[3], + color: whiteColor, + ...infoBoxShadow + }, + success: { + backgroundColor: successColor[3], + color: whiteColor, + ...successBoxShadow + }, + warning: { + backgroundColor: warningColor[3], + color: whiteColor, + ...warningBoxShadow + }, + danger: { + backgroundColor: dangerColor[3], + color: whiteColor, + ...dangerBoxShadow + }, + primary: { + backgroundColor: primaryColor[3], + color: whiteColor, + ...primaryBoxShadow + }, + rose: { + backgroundColor: roseColor[3], + color: whiteColor, + ...roseBoxShadow + }, + message: { + padding: "0", + display: "block", + maxWidth: "89%" + }, + close: { + width: "11px", + height: "11px" + }, + iconButton: { + width: "24px", + height: "24px", + padding: "0px" + }, + icon: { + display: "block", + left: "15px", + position: "absolute", + top: "50%", + marginTop: "-15px", + width: "30px", + height: "30px" + }, + infoIcon: { + color: infoColor[3] + }, + successIcon: { + color: successColor[3] + }, + warningIcon: { + color: warningColor[3] + }, + dangerIcon: { + color: dangerColor[3] + }, + primaryIcon: { + color: primaryColor[3] + }, + roseIcon: { + color: roseColor[3] + }, + iconMessage: { + paddingLeft: "50px", + display: "block" + }, + actionRTL: { + marginLeft: "-8px", + marginRight: "auto" + } +}; + +export default snackbarContentStyle; diff --git a/src/assets/jss/material-dashboard-react/components/tableStyle.js b/src/assets/jss/material-dashboard-react/components/tableStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..8054225b99e00e163bbfe7a37188fb0788aba509 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/tableStyle.js @@ -0,0 +1,77 @@ +import { + warningColor, + primaryColor, + dangerColor, + successColor, + infoColor, + roseColor, + grayColor, + defaultFont +} from "assets/jss/material-dashboard-react.js"; + +const tableStyle = theme => ({ + warningTableHeader: { + color: warningColor[0] + }, + primaryTableHeader: { + color: primaryColor[0] + }, + dangerTableHeader: { + color: dangerColor[0] + }, + successTableHeader: { + color: successColor[0] + }, + infoTableHeader: { + color: infoColor[0] + }, + roseTableHeader: { + color: roseColor[0] + }, + grayTableHeader: { + color: grayColor[0] + }, + table: { + marginBottom: "0", + width: "100%", + maxWidth: "100%", + backgroundColor: "transparent", + borderSpacing: "0", + borderCollapse: "collapse" + }, + tableHeadCell: { + color: "inherit", + ...defaultFont, + "&, &$tableCell": { + fontSize: "1em" + } + }, + tableCell: { + ...defaultFont, + lineHeight: "1.42857143", + padding: "12px 8px", + verticalAlign: "middle", + fontSize: "0.8125rem" + }, + tableResponsive: { + width: "100%", + marginTop: theme.spacing(3), + overflowX: "auto" + }, + tableHeadRow: { + height: "56px", + color: "inherit", + display: "table-row", + outline: "none", + verticalAlign: "middle" + }, + tableBodyRow: { + height: "48px", + color: "inherit", + display: "table-row", + outline: "none", + verticalAlign: "middle" + } +}); + +export default tableStyle; diff --git a/src/assets/jss/material-dashboard-react/components/tasksStyle.js b/src/assets/jss/material-dashboard-react/components/tasksStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..58a5e9c0200046a0d06e7590bb1eaf5368a0b2e0 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/tasksStyle.js @@ -0,0 +1,57 @@ +import { + defaultFont, + primaryColor, + dangerColor, + grayColor +} from "assets/jss/material-dashboard-react.js"; +import tooltipStyle from "assets/jss/material-dashboard-react/tooltipStyle.js"; +import checkboxAdnRadioStyle from "assets/jss/material-dashboard-react/checkboxAdnRadioStyle.js"; +const tasksStyle = { + ...tooltipStyle, + ...checkboxAdnRadioStyle, + table: { + marginBottom: "0", + overflow: "visible" + }, + tableRow: { + position: "relative", + borderBottom: "1px solid " + grayColor[5] + }, + tableActions: { + display: "flex", + border: "none", + padding: "12px 8px !important", + verticalAlign: "middle" + }, + tableCell: { + ...defaultFont, + padding: "8px", + verticalAlign: "middle", + border: "none", + lineHeight: "1.42857143", + fontSize: "14px" + }, + tableCellRTL: { + textAlign: "right" + }, + tableActionButton: { + width: "27px", + height: "27px", + padding: "0" + }, + tableActionButtonIcon: { + width: "17px", + height: "17px" + }, + edit: { + backgroundColor: "transparent", + color: primaryColor[0], + boxShadow: "none" + }, + close: { + backgroundColor: "transparent", + color: dangerColor[0], + boxShadow: "none" + } +}; +export default tasksStyle; diff --git a/src/assets/jss/material-dashboard-react/components/typographyStyle.js b/src/assets/jss/material-dashboard-react/components/typographyStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..3894ecafe42d42457a3f80ec68804e28a7cf39bc --- /dev/null +++ b/src/assets/jss/material-dashboard-react/components/typographyStyle.js @@ -0,0 +1,56 @@ +import { + defaultFont, + primaryColor, + infoColor, + successColor, + warningColor, + dangerColor, + grayColor +} from "assets/jss/material-dashboard-react.js"; + +const typographyStyle = { + defaultFontStyle: { + ...defaultFont, + fontSize: "14px" + }, + defaultHeaderMargins: { + marginTop: "20px", + marginBottom: "10px" + }, + quote: { + padding: "10px 20px", + margin: "0 0 20px", + fontSize: "17.5px", + borderLeft: "5px solid " + grayColor[10] + }, + quoteText: { + margin: "0 0 10px", + fontStyle: "italic" + }, + quoteAuthor: { + display: "block", + fontSize: "80%", + lineHeight: "1.42857143", + color: grayColor[1] + }, + mutedText: { + color: grayColor[1] + }, + primaryText: { + color: primaryColor[0] + }, + infoText: { + color: infoColor[0] + }, + successText: { + color: successColor[0] + }, + warningText: { + color: warningColor[0] + }, + dangerText: { + color: dangerColor[0] + } +}; + +export default typographyStyle; diff --git a/src/assets/jss/material-dashboard-react/dropdownStyle.js b/src/assets/jss/material-dashboard-react/dropdownStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..7594d7c4fd96881c0ec6d63c3ce7b10e8268e6b3 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/dropdownStyle.js @@ -0,0 +1,124 @@ +import { + primaryColor, + whiteColor, + primaryBoxShadow, + defaultFont, + blackColor, + grayColor, + hexToRgb +} from "assets/jss/material-dashboard-react.js"; + +const dropdownStyle = theme => ({ + buttonLink: { + [theme.breakpoints.down("md")]: { + display: "flex", + marginLeft: "30px", + width: "auto" + } + }, + links: { + width: "20px", + height: "20px", + zIndex: "4", + [theme.breakpoints.down("md")]: { + display: "block", + width: "30px", + height: "30px", + color: grayColor[9], + marginRight: "15px" + } + }, + linkText: { + zIndex: "4", + ...defaultFont, + fontSize: "14px" + }, + popperClose: { + pointerEvents: "none" + }, + pooperResponsive: { + [theme.breakpoints.down("md")]: { + zIndex: "1640", + position: "static", + float: "none", + width: "auto", + marginTop: "0", + backgroundColor: "transparent", + border: "0", + WebkitBoxShadow: "none", + boxShadow: "none", + color: "black" + } + }, + popperNav: { + [theme.breakpoints.down("sm")]: { + position: "static !important", + left: "unset !important", + top: "unset !important", + transform: "none !important", + willChange: "unset !important", + "& > div": { + boxShadow: "none !important", + marginLeft: "0rem", + marginRight: "0rem", + transition: "none !important", + marginTop: "0px !important", + marginBottom: "0px !important", + padding: "0px !important", + backgroundColor: "transparent !important", + "& ul li": { + color: whiteColor + " !important", + margin: "10px 15px 0!important", + padding: "10px 15px !important", + "&:hover": { + backgroundColor: "hsla(0,0%,78%,.2)", + boxShadow: "none" + } + } + } + } + }, + dropdown: { + borderRadius: "3px", + border: "0", + boxShadow: "0 2px 5px 0 rgba(" + hexToRgb(blackColor) + ", 0.26)", + top: "100%", + zIndex: "1000", + minWidth: "160px", + padding: "5px 0", + margin: "2px 0 0", + fontSize: "14px", + textAlign: "left", + listStyle: "none", + backgroundColor: whiteColor, + WebkitBackgroundClip: "padding-box", + backgroundClip: "padding-box" + }, + dropdownItem: { + ...defaultFont, + fontSize: "13px", + padding: "10px 20px", + margin: "0 5px", + borderRadius: "2px", + WebkitTransition: "all 150ms linear", + MozTransition: "all 150ms linear", + OTransition: "all 150ms linear", + MsTransition: "all 150ms linear", + transition: "all 150ms linear", + display: "block", + clear: "both", + fontWeight: "400", + lineHeight: "1.42857143", + color: grayColor[8], + whiteSpace: "nowrap", + height: "unset", + minHeight: "unset", + "&:hover": { + backgroundColor: primaryColor[0], + color: whiteColor, + ...primaryBoxShadow + } + } +}); + +export default dropdownStyle; diff --git a/src/assets/jss/material-dashboard-react/layouts/adminStyle.js b/src/assets/jss/material-dashboard-react/layouts/adminStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..4f904929e7ea71e5978542d58b0a7c91d2e48617 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/layouts/adminStyle.js @@ -0,0 +1,36 @@ +import { + drawerWidth, + transition, + container +} from "assets/jss/material-dashboard-react.js"; + +const appStyle = theme => ({ + wrapper: { + position: "relative", + top: "0", + height: "100vh" + }, + mainPanel: { + [theme.breakpoints.up("md")]: { + width: `calc(100% - ${drawerWidth}px)` + }, + overflow: "auto", + position: "relative", + float: "right", + ...transition, + maxHeight: "100%", + width: "100%", + overflowScrolling: "touch" + }, + content: { + marginTop: "70px", + padding: "30px 15px", + minHeight: "calc(100vh - 123px)" + }, + container, + map: { + marginTop: "70px" + } +}); + +export default appStyle; diff --git a/src/assets/jss/material-dashboard-react/layouts/rtlStyle.js b/src/assets/jss/material-dashboard-react/layouts/rtlStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..677daa6f8601d4d38730fcd4e75c6c49354bcf55 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/layouts/rtlStyle.js @@ -0,0 +1,37 @@ +import { + drawerWidth, + transition, + container +} from "assets/jss/material-dashboard-react.js"; + +const appStyle = theme => ({ + wrapper: { + position: "relative", + top: "0", + height: "100vh", + direction: "rtl" + }, + mainPanel: { + [theme.breakpoints.up("md")]: { + width: `calc(100% - ${drawerWidth}px)` + }, + overflow: "auto", + position: "relative", + float: "left", + ...transition, + maxHeight: "100%", + width: "100%", + overflowScrolling: "touch" + }, + content: { + marginTop: "70px", + padding: "30px 15px", + minHeight: "calc(100vh - 123px)" + }, + container, + map: { + marginTop: "70px" + } +}); + +export default appStyle; diff --git a/src/assets/jss/material-dashboard-react/tooltipStyle.js b/src/assets/jss/material-dashboard-react/tooltipStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..bcbd7a0ba79866efaabdae5b59795a7023fb489b --- /dev/null +++ b/src/assets/jss/material-dashboard-react/tooltipStyle.js @@ -0,0 +1,34 @@ +import { blackColor, hexToRgb } from "assets/jss/material-dashboard-react.js"; + +const tooltipStyle = { + tooltip: { + padding: "10px 15px", + minWidth: "130px", + lineHeight: "1.7em", + border: "none", + borderRadius: "3px", + boxShadow: + "0 8px 10px 1px rgba(" + + hexToRgb(blackColor) + + ", 0.14), 0 3px 14px 2px rgba(" + + hexToRgb(blackColor) + + ", 0.12), 0 5px 5px -3px rgba(" + + hexToRgb(blackColor) + + ", 0.2)", + maxWidth: "200px", + textAlign: "center", + fontFamily: '"Helvetica Neue",Helvetica,Arial,sans-serif', + fontSize: "12px", + fontStyle: "normal", + fontWeight: "400", + textShadow: "none", + textTransform: "none", + letterSpacing: "normal", + wordBreak: "normal", + wordSpacing: "normal", + wordWrap: "normal", + whiteSpace: "normal", + lineBreak: "auto" + } +}; +export default tooltipStyle; diff --git a/src/assets/jss/material-dashboard-react/views/dashboardStyle.js b/src/assets/jss/material-dashboard-react/views/dashboardStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..fe6f4e9d0045b5891e6d2f155c2abea6776b84e0 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/views/dashboardStyle.js @@ -0,0 +1,82 @@ +import { + successColor, + whiteColor, + grayColor, + hexToRgb +} from "assets/jss/material-dashboard-react.js"; + +const dashboardStyle = { + successText: { + color: successColor[0] + }, + upArrowCardCategory: { + width: "16px", + height: "16px" + }, + stats: { + color: grayColor[0], + display: "inline-flex", + fontSize: "12px", + lineHeight: "22px", + "& svg": { + top: "4px", + width: "16px", + height: "16px", + position: "relative", + marginRight: "3px", + marginLeft: "3px" + }, + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + top: "4px", + fontSize: "16px", + position: "relative", + marginRight: "3px", + marginLeft: "3px" + } + }, + cardCategory: { + color: grayColor[0], + margin: "0", + fontSize: "14px", + marginTop: "0", + paddingTop: "10px", + marginBottom: "0" + }, + cardCategoryWhite: { + color: "rgba(" + hexToRgb(whiteColor) + ",.62)", + margin: "0", + fontSize: "14px", + marginTop: "0", + marginBottom: "0" + }, + cardTitle: { + color: grayColor[2], + marginTop: "0px", + minHeight: "auto", + fontWeight: "300", + fontFamily: "'Roboto', 'Helvetica', 'Arial', sans-serif", + marginBottom: "3px", + textDecoration: "none", + "& small": { + color: grayColor[1], + fontWeight: "400", + lineHeight: "1" + } + }, + cardTitleWhite: { + color: whiteColor, + marginTop: "0px", + minHeight: "auto", + fontWeight: "300", + fontFamily: "'Roboto', 'Helvetica', 'Arial', sans-serif", + marginBottom: "3px", + textDecoration: "none", + "& small": { + color: grayColor[1], + fontWeight: "400", + lineHeight: "1" + } + } +}; + +export default dashboardStyle; diff --git a/src/assets/jss/material-dashboard-react/views/iconsStyle.js b/src/assets/jss/material-dashboard-react/views/iconsStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..4043b711980720cab978ef9ebdc8eeef8e4a89a2 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/views/iconsStyle.js @@ -0,0 +1,46 @@ +import { + boxShadow, + whiteColor, + grayColor, + hexToRgb +} from "assets/jss/material-dashboard-react.js"; + +const iconsStyle = { + iframe: { + width: "100%", + height: "500px", + border: "0", + ...boxShadow + }, + iframeContainer: { + margin: "0 -20px 0" + }, + cardCategoryWhite: { + "&,& a,& a:hover,& a:focus": { + color: "rgba(" + hexToRgb(whiteColor) + ",.62)", + margin: "0", + fontSize: "14px", + marginTop: "0", + marginBottom: "0" + }, + "& a,& a:hover,& a:focus": { + color: whiteColor + } + }, + cardTitleWhite: { + color: whiteColor, + marginTop: "0px", + minHeight: "auto", + fontWeight: "300", + fontFamily: "'Roboto', 'Helvetica', 'Arial', sans-serif", + marginBottom: "3px", + textDecoration: "none", + "& small": { + color: grayColor[1], + fontWeight: "400", + lineHeight: "1" + } + } +}; + +export default iconsStyle; diff --git a/src/assets/jss/material-dashboard-react/views/rtlStyle.js b/src/assets/jss/material-dashboard-react/views/rtlStyle.js new file mode 100644 index 0000000000000000000000000000000000000000..22d228a9af0f4ba0ffcda1c7ef8f0ce60e27f139 --- /dev/null +++ b/src/assets/jss/material-dashboard-react/views/rtlStyle.js @@ -0,0 +1,85 @@ +import { + successColor, + whiteColor, + grayColor, + hexToRgb +} from "assets/jss/material-dashboard-react.js"; + +const rtlStyle = { + successText: { + color: successColor[0] + }, + upArrowCardCategory: { + width: "16px", + height: "16px" + }, + stats: { + color: grayColor[0], + display: "inline-flex", + fontSize: "12px", + lineHeight: "22px", + "& svg": { + top: "4px", + width: "16px", + height: "16px", + position: "relative", + marginRight: "3px", + marginLeft: "3px" + }, + "& .fab,& .fas,& .far,& .fal,& .material-icons": { + top: "4px", + fontSize: "16px", + position: "relative", + marginRight: "3px", + marginLeft: "3px" + } + }, + cardCategory: { + color: grayColor[0], + margin: "0", + fontSize: "14px", + marginTop: "0", + paddingTop: "10px", + marginBottom: "0" + }, + cardCategoryWhite: { + color: "rgba(" + hexToRgb(whiteColor) + ",.62)", + margin: "0", + fontSize: "14px", + marginTop: "0", + marginBottom: "0", + "& a": { + color: whiteColor + } + }, + cardTitle: { + color: grayColor[2], + marginTop: "0px", + minHeight: "auto", + fontWeight: "300", + fontFamily: "'Roboto', 'Helvetica', 'Arial', sans-serif", + marginBottom: "3px", + textDecoration: "none", + "& small": { + color: grayColor[1], + fontWeight: "400", + lineHeight: "1" + } + }, + cardTitleWhite: { + color: whiteColor, + marginTop: "0px", + minHeight: "auto", + fontWeight: "300", + fontFamily: "'Roboto', 'Helvetica', 'Arial', sans-serif", + marginBottom: "3px", + textDecoration: "none", + "& small": { + color: grayColor[1], + fontWeight: "400", + lineHeight: "1" + } + } +}; + +export default rtlStyle; diff --git a/src/components/Card/Card.js b/src/components/Card/Card.js new file mode 100644 index 0000000000000000000000000000000000000000..fb3a0ea3496750240e346298c3c2beab3a0df86c --- /dev/null +++ b/src/components/Card/Card.js @@ -0,0 +1,38 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// @material-ui/icons + +// core components +import styles from "./../../assets/jss/material-dashboard-react/components/cardStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Card(props) { + const classes = useStyles(); + const { className, children, plain, profile, chart, ...rest } = props; + const cardClasses = classNames({ + [classes.card]: true, + [classes.cardPlain]: plain, + [classes.cardProfile]: profile, + [classes.cardChart]: chart, + [className]: className !== undefined + }); + return ( +
+ {children} +
+ ); +} + +Card.propTypes = { + className: PropTypes.string, + plain: PropTypes.bool, + profile: PropTypes.bool, + chart: PropTypes.bool, + children: PropTypes.node +}; diff --git a/src/components/Card/CardAvatar.js b/src/components/Card/CardAvatar.js new file mode 100644 index 0000000000000000000000000000000000000000..ef323252e267b2bc484b528c86b25b88faad7fe7 --- /dev/null +++ b/src/components/Card/CardAvatar.js @@ -0,0 +1,36 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// @material-ui/icons +// core components + +import styles from "assets/jss/material-dashboard-react/components/cardAvatarStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CardAvatar(props) { + const classes = useStyles(); + const { children, className, plain, profile, ...rest } = props; + const cardAvatarClasses = classNames({ + [classes.cardAvatar]: true, + [classes.cardAvatarProfile]: profile, + [classes.cardAvatarPlain]: plain, + [className]: className !== undefined + }); + return ( +
+ {children} +
+ ); +} + +CardAvatar.propTypes = { + children: PropTypes.node.isRequired, + className: PropTypes.string, + profile: PropTypes.bool, + plain: PropTypes.bool +}; diff --git a/src/components/Card/CardBody.js b/src/components/Card/CardBody.js new file mode 100644 index 0000000000000000000000000000000000000000..42f031968424ae72ec8ea606cc949a9e47ad3f7e --- /dev/null +++ b/src/components/Card/CardBody.js @@ -0,0 +1,36 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// @material-ui/icons + +// core components +import styles from "./../../assets/jss/material-dashboard-react/components/cardBodyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CardBody(props) { + const classes = useStyles(); + const { className, children, plain, profile, ...rest } = props; + const cardBodyClasses = classNames({ + [classes.cardBody]: true, + [classes.cardBodyPlain]: plain, + [classes.cardBodyProfile]: profile, + [className]: className !== undefined + }); + return ( +
+ {children} +
+ ); +} + +CardBody.propTypes = { + className: PropTypes.string, + plain: PropTypes.bool, + profile: PropTypes.bool, + children: PropTypes.node +}; diff --git a/src/components/Card/CardFooter.js b/src/components/Card/CardFooter.js new file mode 100644 index 0000000000000000000000000000000000000000..0a52c976c05b974fd2d755b54a8ca676eff0cacb --- /dev/null +++ b/src/components/Card/CardFooter.js @@ -0,0 +1,40 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// @material-ui/icons + +// core components +import styles from "assets/jss/material-dashboard-react/components/cardFooterStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CardFooter(props) { + const classes = useStyles(); + const { className, children, plain, profile, stats, chart, ...rest } = props; + const cardFooterClasses = classNames({ + [classes.cardFooter]: true, + [classes.cardFooterPlain]: plain, + [classes.cardFooterProfile]: profile, + [classes.cardFooterStats]: stats, + [classes.cardFooterChart]: chart, + [className]: className !== undefined + }); + return ( +
+ {children} +
+ ); +} + +CardFooter.propTypes = { + className: PropTypes.string, + plain: PropTypes.bool, + profile: PropTypes.bool, + stats: PropTypes.bool, + chart: PropTypes.bool, + children: PropTypes.node +}; diff --git a/src/components/Card/CardHeader.js b/src/components/Card/CardHeader.js new file mode 100644 index 0000000000000000000000000000000000000000..2d38da2dad3c0656f38bb9f6cb0e7a0aef466a96 --- /dev/null +++ b/src/components/Card/CardHeader.js @@ -0,0 +1,47 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// @material-ui/icons + +// core components +import styles from "assets/jss/material-dashboard-react/components/cardHeaderStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CardHeader(props) { + const classes = useStyles(); + const { className, children, color, plain, stats, icon, ...rest } = props; + const cardHeaderClasses = classNames({ + [classes.cardHeader]: true, + [classes[color + "CardHeader"]]: color, + [classes.cardHeaderPlain]: plain, + [classes.cardHeaderStats]: stats, + [classes.cardHeaderIcon]: icon, + [className]: className !== undefined + }); + return ( +
+ {children} +
+ ); +} + +CardHeader.propTypes = { + className: PropTypes.string, + color: PropTypes.oneOf([ + "warning", + "success", + "danger", + "info", + "primary", + "rose" + ]), + plain: PropTypes.bool, + stats: PropTypes.bool, + icon: PropTypes.bool, + children: PropTypes.node +}; diff --git a/src/components/Card/CardIcon.js b/src/components/Card/CardIcon.js new file mode 100644 index 0000000000000000000000000000000000000000..f05a4172d872cd27ae45245568e244fd76da8baa --- /dev/null +++ b/src/components/Card/CardIcon.js @@ -0,0 +1,41 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// @material-ui/icons + +// core components +import styles from "assets/jss/material-dashboard-react/components/cardIconStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CardIcon(props) { + const classes = useStyles(); + const { className, children, color, ...rest } = props; + const cardIconClasses = classNames({ + [classes.cardIcon]: true, + [classes[color + "CardHeader"]]: color, + [className]: className !== undefined + }); + return ( +
+ {children} +
+ ); +} + +CardIcon.propTypes = { + className: PropTypes.string, + color: PropTypes.oneOf([ + "warning", + "success", + "danger", + "info", + "primary", + "rose" + ]), + children: PropTypes.node +}; diff --git a/src/components/CustomButtons/Button.js b/src/components/CustomButtons/Button.js new file mode 100644 index 0000000000000000000000000000000000000000..b1d6d9c2eab089b47168002c1e184c04256e872a --- /dev/null +++ b/src/components/CustomButtons/Button.js @@ -0,0 +1,72 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; + +// material-ui components +import { makeStyles } from "@material-ui/core/styles"; +import Button from "@material-ui/core/Button"; + +import styles from "./../../assets/jss/material-dashboard-react/components/buttonStyle.js"; + +const useStyles = makeStyles(styles); + +export default function RegularButton(props) { + const classes = useStyles(); + const { + color, + round, + children, + disabled, + simple, + size, + block, + link, + justIcon, + className, + muiClasses, + ...rest + } = props; + const btnClasses = classNames({ + [classes.button]: true, + [classes[size]]: size, + [classes[color]]: color, + [classes.round]: round, + [classes.disabled]: disabled, + [classes.simple]: simple, + [classes.block]: block, + [classes.link]: link, + [classes.justIcon]: justIcon, + [className]: className + }); + return ( + + ); +} + +RegularButton.propTypes = { + color: PropTypes.oneOf([ + "primary", + "info", + "success", + "warning", + "danger", + "rose", + "white", + "transparent" + ]), + size: PropTypes.oneOf(["sm", "lg"]), + simple: PropTypes.bool, + round: PropTypes.bool, + disabled: PropTypes.bool, + block: PropTypes.bool, + link: PropTypes.bool, + justIcon: PropTypes.bool, + className: PropTypes.string, + // use this to pass the classes props from Material-UI + muiClasses: PropTypes.object, + children: PropTypes.node +}; diff --git a/src/components/CustomInput/CustomInput.js b/src/components/CustomInput/CustomInput.js new file mode 100644 index 0000000000000000000000000000000000000000..782d38ad054d54fb3e4ee2ce1da1e2052873264c --- /dev/null +++ b/src/components/CustomInput/CustomInput.js @@ -0,0 +1,81 @@ +import React from "react"; +import classNames from "classnames"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import FormControl from "@material-ui/core/FormControl"; +import InputLabel from "@material-ui/core/InputLabel"; +import Input from "@material-ui/core/Input"; +// @material-ui/icons +import Clear from "@material-ui/icons/Clear"; +import Check from "@material-ui/icons/Check"; +// core components +import styles from "assets/jss/material-dashboard-react/components/customInputStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CustomInput(props) { + const classes = useStyles(); + const { + formControlProps, + labelText, + id, + labelProps, + inputProps, + error, + success + } = props; + + const labelClasses = classNames({ + [" " + classes.labelRootError]: error, + [" " + classes.labelRootSuccess]: success && !error + }); + const underlineClasses = classNames({ + [classes.underlineError]: error, + [classes.underlineSuccess]: success && !error, + [classes.underline]: true + }); + const marginTop = classNames({ + [classes.marginTop]: labelText === undefined + }); + return ( + + {labelText !== undefined ? ( + + {labelText} + + ) : null} + + {error ? ( + + ) : success ? ( + + ) : null} + + ); +} + +CustomInput.propTypes = { + labelText: PropTypes.node, + labelProps: PropTypes.object, + id: PropTypes.string, + inputProps: PropTypes.object, + formControlProps: PropTypes.object, + error: PropTypes.bool, + success: PropTypes.bool +}; diff --git a/src/components/CustomTabs/CustomTabs.js b/src/components/CustomTabs/CustomTabs.js new file mode 100644 index 0000000000000000000000000000000000000000..1d153fa856296466a1e8892a32df1be6eadfa991 --- /dev/null +++ b/src/components/CustomTabs/CustomTabs.js @@ -0,0 +1,99 @@ +import React from "react"; +// nodejs library that concatenates classes +import classNames from "classnames"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; + +// material-ui components +import { makeStyles } from "@material-ui/core/styles"; +import Tabs from "@material-ui/core/Tabs"; +import Tab from "@material-ui/core/Tab"; +// core components +import Card from "components/Card/Card.js"; +import CardBody from "components/Card/CardBody.js"; +import CardHeader from "components/Card/CardHeader.js"; + +import styles from "assets/jss/material-dashboard-react/components/customTabsStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CustomTabs(props) { + const [value, setValue] = React.useState(0); + const handleChange = (event, value) => { + setValue(value); + }; + const classes = useStyles(); + const { headerColor, plainTabs, tabs, title, rtlActive } = props; + const cardTitle = classNames({ + [classes.cardTitle]: true, + [classes.cardTitleRTL]: rtlActive + }); + return ( + + + {title !== undefined ?
{title}
: null} + + {tabs.map((prop, key) => { + var icon = {}; + if (prop.tabIcon) { + icon = { + icon: + }; + } + return ( + + ); + })} + +
+ + {tabs.map((prop, key) => { + if (key === value) { + return
{prop.tabContent}
; + } + return null; + })} +
+
+ ); +} + +CustomTabs.propTypes = { + headerColor: PropTypes.oneOf([ + "warning", + "success", + "danger", + "info", + "primary", + "rose" + ]), + title: PropTypes.string, + tabs: PropTypes.arrayOf( + PropTypes.shape({ + tabName: PropTypes.string.isRequired, + tabIcon: PropTypes.object, + tabContent: PropTypes.node.isRequired + }) + ), + rtlActive: PropTypes.bool, + plainTabs: PropTypes.bool +}; diff --git a/src/components/FixedPlugin/FixedPlugin.js b/src/components/FixedPlugin/FixedPlugin.js new file mode 100644 index 0000000000000000000000000000000000000000..9898441243242ba7cdbfe2dee1d63cbab22bfb1e --- /dev/null +++ b/src/components/FixedPlugin/FixedPlugin.js @@ -0,0 +1,190 @@ +/*eslint-disable*/ +import React, { Component } from "react"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// nodejs library that concatenates classes +import classnames from "classnames"; + +import imagine1 from "assets/img/sidebar-1.jpg"; +import imagine2 from "assets/img/sidebar-2.jpg"; +import imagine3 from "assets/img/sidebar-3.jpg"; +import imagine4 from "assets/img/sidebar-4.jpg"; + +import Button from "components/CustomButtons/Button.js"; + +export default function FixedPlugin(props) { + const [classes, setClasses] = React.useState("dropdown show"); + const [bg_checked, setBg_checked] = React.useState(true); + const [bgImage, setBgImage] = React.useState(props.bgImage); + const handleClick = () => { + props.handleFixedClick(); + }; + return ( +
+
+
+ +
+ +
+
+ ); +} + +FixedPlugin.propTypes = { + bgImage: PropTypes.string, + handleFixedClick: PropTypes.func, + rtlActive: PropTypes.bool, + fixedClasses: PropTypes.string, + bgColor: PropTypes.oneOf(["purple", "blue", "green", "orange", "red"]), + handleColorClick: PropTypes.func, + handleImageClick: PropTypes.func +}; diff --git a/src/components/Footer/Footer.js b/src/components/Footer/Footer.js new file mode 100755 index 0000000000000000000000000000000000000000..b3efa01b8997a85e90d8f7d6ba2b9ed22cb6a443 --- /dev/null +++ b/src/components/Footer/Footer.js @@ -0,0 +1,58 @@ +/*eslint-disable*/ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import ListItem from "@material-ui/core/ListItem"; +import List from "@material-ui/core/List"; +// core components +import styles from "assets/jss/material-dashboard-react/components/footerStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Footer(props) { + const classes = useStyles(); + return ( + + ); +} diff --git a/src/components/Grid/GridContainer.js b/src/components/Grid/GridContainer.js new file mode 100644 index 0000000000000000000000000000000000000000..4c815694f6e2aedf356c93842ea11456a9d71f25 --- /dev/null +++ b/src/components/Grid/GridContainer.js @@ -0,0 +1,29 @@ +import React from "react"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import Grid from "@material-ui/core/Grid"; + +const styles = { + grid: { + margin: "0 -15px !important", + width: "unset" + } +}; + +const useStyles = makeStyles(styles); + +export default function GridContainer(props) { + const classes = useStyles(); + const { children, ...rest } = props; + return ( + + {children} + + ); +} + +GridContainer.propTypes = { + children: PropTypes.node +}; diff --git a/src/components/Grid/GridItem.js b/src/components/Grid/GridItem.js new file mode 100644 index 0000000000000000000000000000000000000000..3188856688f0fb09a49fffe3067a05d6b42e2147 --- /dev/null +++ b/src/components/Grid/GridItem.js @@ -0,0 +1,28 @@ +import React from "react"; +// nodejs library to set properties for components +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import Grid from "@material-ui/core/Grid"; + +const styles = { + grid: { + padding: "0 15px !important" + } +}; + +const useStyles = makeStyles(styles); + +export default function GridItem(props) { + const classes = useStyles(); + const { children, ...rest } = props; + return ( + + {children} + + ); +} + +GridItem.propTypes = { + children: PropTypes.node +}; diff --git a/src/components/Navbars/AdminNavbarLinks.js b/src/components/Navbars/AdminNavbarLinks.js new file mode 100644 index 0000000000000000000000000000000000000000..a6a5acf0918c84fba64f0dcdf5ffbcd7cf47ef3d --- /dev/null +++ b/src/components/Navbars/AdminNavbarLinks.js @@ -0,0 +1,224 @@ +import React from "react"; +import classNames from "classnames"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import MenuItem from "@material-ui/core/MenuItem"; +import MenuList from "@material-ui/core/MenuList"; +import Grow from "@material-ui/core/Grow"; +import Paper from "@material-ui/core/Paper"; +import ClickAwayListener from "@material-ui/core/ClickAwayListener"; +import Hidden from "@material-ui/core/Hidden"; +import Poppers from "@material-ui/core/Popper"; +import Divider from "@material-ui/core/Divider"; +// @material-ui/icons +import Person from "@material-ui/icons/Person"; +import Notifications from "@material-ui/icons/Notifications"; +import Dashboard from "@material-ui/icons/Dashboard"; +import Search from "@material-ui/icons/Search"; +// core components +import CustomInput from "components/CustomInput/CustomInput.js"; +import Button from "components/CustomButtons/Button.js"; + +import styles from "assets/jss/material-dashboard-react/components/headerLinksStyle.js"; + +const useStyles = makeStyles(styles); + +export default function AdminNavbarLinks() { + const classes = useStyles(); + const [openNotification, setOpenNotification] = React.useState(null); + const [openProfile, setOpenProfile] = React.useState(null); + const handleClickNotification = event => { + if (openNotification && openNotification.contains(event.target)) { + setOpenNotification(null); + } else { + setOpenNotification(event.currentTarget); + } + }; + const handleCloseNotification = () => { + setOpenNotification(null); + }; + const handleClickProfile = event => { + if (openProfile && openProfile.contains(event.target)) { + setOpenProfile(null); + } else { + setOpenProfile(event.currentTarget); + } + }; + const handleCloseProfile = () => { + setOpenProfile(null); + }; + return ( +
+
+ + +
+ +
+ + + {({ TransitionProps, placement }) => ( + + + + + + Mike John responded to your email + + + You have 5 new tasks + + + You{"'"}re now friend with Andrew + + + Another Notification + + + Another One + + + + + + )} + +
+
+ + + {({ TransitionProps, placement }) => ( + + + + + + Profile + + + Settings + + + + Logout + + + + + + )} + +
+
+ ); +} diff --git a/src/components/Navbars/Navbar.js b/src/components/Navbars/Navbar.js new file mode 100755 index 0000000000000000000000000000000000000000..1a0f3e92542d9495f91da65b6c919f99aa102039 --- /dev/null +++ b/src/components/Navbars/Navbar.js @@ -0,0 +1,68 @@ +import React from "react"; +import classNames from "classnames"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import AppBar from "@material-ui/core/AppBar"; +import Toolbar from "@material-ui/core/Toolbar"; +import IconButton from "@material-ui/core/IconButton"; +import Hidden from "@material-ui/core/Hidden"; +// @material-ui/icons +import Menu from "@material-ui/icons/Menu"; +// core components +import AdminNavbarLinks from "./AdminNavbarLinks.js"; +import RTLNavbarLinks from "./RTLNavbarLinks.js"; +import Button from "components/CustomButtons/Button.js"; + +import styles from "assets/jss/material-dashboard-react/components/headerStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Header(props) { + const classes = useStyles(); + function makeBrand() { + var name; + props.routes.map(prop => { + if (window.location.href.indexOf(prop.layout + prop.path) !== -1) { + name = props.rtlActive ? prop.rtlName : prop.name; + } + return null; + }); + return name; + } + const { color } = props; + const appBarClasses = classNames({ + [" " + classes[color]]: color + }); + return ( + + +
+ {/* Here we create navbar brand, based on route name */} + +
+ + {props.rtlActive ? : } + + + + + + + + + ); +} + +Header.propTypes = { + color: PropTypes.oneOf(["primary", "info", "success", "warning", "danger"]), + rtlActive: PropTypes.bool, + handleDrawerToggle: PropTypes.func, + routes: PropTypes.arrayOf(PropTypes.object) +}; diff --git a/src/components/Navbars/RTLNavbarLinks.js b/src/components/Navbars/RTLNavbarLinks.js new file mode 100644 index 0000000000000000000000000000000000000000..d2eb4274837ad960742e86501e3a84efd2699d97 --- /dev/null +++ b/src/components/Navbars/RTLNavbarLinks.js @@ -0,0 +1,162 @@ +import React from "react"; +import classNames from "classnames"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import MenuItem from "@material-ui/core/MenuItem"; +import MenuList from "@material-ui/core/MenuList"; +import Grow from "@material-ui/core/Grow"; +import Paper from "@material-ui/core/Paper"; +import ClickAwayListener from "@material-ui/core/ClickAwayListener"; +import Hidden from "@material-ui/core/Hidden"; +import Poppers from "@material-ui/core/Popper"; +// @material-ui/icons +import Person from "@material-ui/icons/Person"; +import Notifications from "@material-ui/icons/Notifications"; +import Dashboard from "@material-ui/icons/Dashboard"; +import Search from "@material-ui/icons/Search"; +// core components +import CustomInput from "components/CustomInput/CustomInput.js"; +import Button from "components/CustomButtons/Button.js"; + +import styles from "assets/jss/material-dashboard-react/components/rtlHeaderLinksStyle.js"; + +const useStyles = makeStyles(styles); + +export default function RTLNavbarLinks() { + const classes = useStyles(); + const [open, setOpen] = React.useState(null); + const handleToggle = event => { + if (open && open.contains(event.target)) { + setOpen(null); + } else { + setOpen(event.currentTarget); + } + }; + + const handleClose = () => { + setOpen(null); + }; + + return ( +
+
+ + +
+ +
+ + + {({ TransitionProps, placement }) => ( + + + + + + محمدرضا به ایمیل شما پاسخ داد + + + شما ۵ وظیفه جدید دارید + + + از حالا شما با علیرضا دوست هستید + + + اعلان دیگر + + + اعلان دیگر + + + + + + )} + +
+ +
+ ); +} diff --git a/src/components/Sidebar/Sidebar.js b/src/components/Sidebar/Sidebar.js new file mode 100755 index 0000000000000000000000000000000000000000..6554fcf3c65e382fa0c029d3d49034f68c92ea4f --- /dev/null +++ b/src/components/Sidebar/Sidebar.js @@ -0,0 +1,163 @@ +/*eslint-disable*/ +import React from "react"; +import classNames from "classnames"; +import PropTypes from "prop-types"; +import { NavLink } from "react-router-dom"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import Drawer from "@material-ui/core/Drawer"; +import Hidden from "@material-ui/core/Hidden"; +import List from "@material-ui/core/List"; +import ListItem from "@material-ui/core/ListItem"; +import ListItemText from "@material-ui/core/ListItemText"; +import Icon from "@material-ui/core/Icon"; +// core components +import AdminNavbarLinks from "components/Navbars/AdminNavbarLinks.js"; +import RTLNavbarLinks from "components/Navbars/RTLNavbarLinks.js"; + +import styles from "assets/jss/material-dashboard-react/components/sidebarStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Sidebar(props) { + const classes = useStyles(); + // verifies if routeName is the one active (in browser input) + function activeRoute(routeName) { + return window.location.href.indexOf(routeName) > -1 ? true : false; + } + const { color, logo, image, logoText, routes } = props; + var links = ( + + {routes.map((prop, key) => { + var activePro = " "; + var listItemClasses; + if (prop.path === "/upgrade-to-pro") { + activePro = classes.activePro + " "; + listItemClasses = classNames({ + [" " + classes[color]]: true + }); + } else { + listItemClasses = classNames({ + [" " + classes[color]]: activeRoute(prop.layout + prop.path) + }); + } + const whiteFontClasses = classNames({ + [" " + classes.whiteFont]: activeRoute(prop.layout + prop.path) + }); + return ( + + + {typeof prop.icon === "string" ? ( + + {prop.icon} + + ) : ( + + )} + + + + ); + })} + + ); + var brand = ( + + ); + return ( +
+ + + {brand} +
+ {props.rtlActive ? : } + {links} +
+ {image !== undefined ? ( +
+ ) : null} + + + + + {brand} +
{links}
+ {image !== undefined ? ( +
+ ) : null} + + +
+ ); +} + +Sidebar.propTypes = { + rtlActive: PropTypes.bool, + handleDrawerToggle: PropTypes.func, + bgColor: PropTypes.oneOf(["purple", "blue", "green", "orange", "red"]), + logo: PropTypes.string, + image: PropTypes.string, + logoText: PropTypes.string, + routes: PropTypes.arrayOf(PropTypes.object), + open: PropTypes.bool +}; diff --git a/src/components/Snackbar/Snackbar.js b/src/components/Snackbar/Snackbar.js new file mode 100644 index 0000000000000000000000000000000000000000..14527a7942314b04c5809ae0f146621ca6654b88 --- /dev/null +++ b/src/components/Snackbar/Snackbar.js @@ -0,0 +1,74 @@ +import React from "react"; +import classNames from "classnames"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import Snack from "@material-ui/core/Snackbar"; +import IconButton from "@material-ui/core/IconButton"; +// @material-ui/icons +import Close from "@material-ui/icons/Close"; +// core components +import styles from "assets/jss/material-dashboard-react/components/snackbarContentStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Snackbar(props) { + const classes = useStyles(); + const { message, color, close, icon, place, open, rtlActive } = props; + var action = []; + const messageClasses = classNames({ + [classes.iconMessage]: icon !== undefined + }); + if (close !== undefined) { + action = [ + props.closeNotification()} + > + + + ]; + } + return ( + + {icon !== undefined ? : null} + {message} +
+ } + action={action} + ContentProps={{ + classes: { + root: classes.root + " " + classes[color], + message: classes.message, + action: classNames({ [classes.actionRTL]: rtlActive }) + } + }} + /> + ); +} + +Snackbar.propTypes = { + message: PropTypes.node.isRequired, + color: PropTypes.oneOf(["info", "success", "warning", "danger", "primary"]), + close: PropTypes.bool, + icon: PropTypes.object, + place: PropTypes.oneOf(["tl", "tr", "tc", "br", "bl", "bc"]), + open: PropTypes.bool, + rtlActive: PropTypes.bool, + closeNotification: PropTypes.func +}; diff --git a/src/components/Snackbar/SnackbarContent.js b/src/components/Snackbar/SnackbarContent.js new file mode 100644 index 0000000000000000000000000000000000000000..120178b6d1c3732617788aa2bf76a5c56c6b34a0 --- /dev/null +++ b/src/components/Snackbar/SnackbarContent.js @@ -0,0 +1,58 @@ +import React from "react"; +import PropTypes from "prop-types"; +import classNames from "classnames"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import Snack from "@material-ui/core/SnackbarContent"; +import IconButton from "@material-ui/core/IconButton"; +// @material-ui/icons +import Close from "@material-ui/icons/Close"; +// core components +import styles from "assets/jss/material-dashboard-react/components/snackbarContentStyle.js"; + +const useStyles = makeStyles(styles); + +export default function SnackbarContent(props) { + const classes = useStyles(); + const { message, color, close, icon, rtlActive } = props; + var action = []; + const messageClasses = classNames({ + [classes.iconMessage]: icon !== undefined + }); + if (close !== undefined) { + action = [ + + + + ]; + } + return ( + + {icon !== undefined ? : null} + {message} +
+ } + classes={{ + root: classes.root + " " + classes[color], + message: classes.message, + action: classNames({ [classes.actionRTL]: rtlActive }) + }} + action={action} + /> + ); +} + +SnackbarContent.propTypes = { + message: PropTypes.node.isRequired, + color: PropTypes.oneOf(["info", "success", "warning", "danger", "primary"]), + close: PropTypes.bool, + icon: PropTypes.object, + rtlActive: PropTypes.bool +}; diff --git a/src/components/Table/Table.js b/src/components/Table/Table.js new file mode 100644 index 0000000000000000000000000000000000000000..91ad32dba1870e12ee08ea5adf6a3c0d5e63dd09 --- /dev/null +++ b/src/components/Table/Table.js @@ -0,0 +1,73 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import Table from "@material-ui/core/Table"; +import TableHead from "@material-ui/core/TableHead"; +import TableRow from "@material-ui/core/TableRow"; +import TableBody from "@material-ui/core/TableBody"; +import TableCell from "@material-ui/core/TableCell"; +// core components +import styles from "assets/jss/material-dashboard-react/components/tableStyle.js"; + +const useStyles = makeStyles(styles); + +export default function CustomTable(props) { + const classes = useStyles(); + const { tableHead, tableData, tableHeaderColor } = props; + return ( +
+ + {tableHead !== undefined ? ( + + + {tableHead.map((prop, key) => { + return ( + + {prop} + + ); + })} + + + ) : null} + + {tableData.map((prop, key) => { + return ( + + {prop.map((prop, key) => { + return ( + + {prop} + + ); + })} + + ); + })} + +
+
+ ); +} + +CustomTable.defaultProps = { + tableHeaderColor: "gray" +}; + +CustomTable.propTypes = { + tableHeaderColor: PropTypes.oneOf([ + "warning", + "primary", + "danger", + "success", + "info", + "rose", + "gray" + ]), + tableHead: PropTypes.arrayOf(PropTypes.string), + tableData: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)) +}; diff --git a/src/components/Tasks/Tasks.js b/src/components/Tasks/Tasks.js new file mode 100755 index 0000000000000000000000000000000000000000..cd462f98b17804393728bd345c24e9fb6abb5190 --- /dev/null +++ b/src/components/Tasks/Tasks.js @@ -0,0 +1,106 @@ +import React from "react"; +import PropTypes from "prop-types"; +import classnames from "classnames"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +import Checkbox from "@material-ui/core/Checkbox"; +import Tooltip from "@material-ui/core/Tooltip"; +import IconButton from "@material-ui/core/IconButton"; +import Table from "@material-ui/core/Table"; +import TableRow from "@material-ui/core/TableRow"; +import TableBody from "@material-ui/core/TableBody"; +import TableCell from "@material-ui/core/TableCell"; +// @material-ui/icons +import Edit from "@material-ui/icons/Edit"; +import Close from "@material-ui/icons/Close"; +import Check from "@material-ui/icons/Check"; +// core components +import styles from "assets/jss/material-dashboard-react/components/tasksStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Tasks(props) { + const classes = useStyles(); + const [checked, setChecked] = React.useState([...props.checkedIndexes]); + const handleToggle = value => { + const currentIndex = checked.indexOf(value); + const newChecked = [...checked]; + if (currentIndex === -1) { + newChecked.push(value); + } else { + newChecked.splice(currentIndex, 1); + } + setChecked(newChecked); + }; + const { tasksIndexes, tasks, rtlActive } = props; + const tableCellClasses = classnames(classes.tableCell, { + [classes.tableCellRTL]: rtlActive + }); + return ( + + + {tasksIndexes.map(value => ( + + + handleToggle(value)} + checkedIcon={} + icon={} + classes={{ + checked: classes.checked, + root: classes.root + }} + /> + + {tasks[value]} + + + + + + + + + + + + + + ))} + +
+ ); +} + +Tasks.propTypes = { + tasksIndexes: PropTypes.arrayOf(PropTypes.number), + tasks: PropTypes.arrayOf(PropTypes.node), + rtlActive: PropTypes.bool, + checkedIndexes: PropTypes.array +}; diff --git a/src/components/Typography/Danger.js b/src/components/Typography/Danger.js new file mode 100755 index 0000000000000000000000000000000000000000..aba10f5da581139200f110023fb348d0f54f148d --- /dev/null +++ b/src/components/Typography/Danger.js @@ -0,0 +1,22 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// core components +import styles from "assets/jss/material-dashboard-react/components/typographyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Danger(props) { + const classes = useStyles(); + const { children } = props; + return ( +
+ {children} +
+ ); +} + +Danger.propTypes = { + children: PropTypes.node +}; diff --git a/src/components/Typography/Info.js b/src/components/Typography/Info.js new file mode 100755 index 0000000000000000000000000000000000000000..a2deeda817d58686530a8f17b335b5d97e8666c7 --- /dev/null +++ b/src/components/Typography/Info.js @@ -0,0 +1,22 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// core components +import styles from "assets/jss/material-dashboard-react/components/typographyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Info(props) { + const classes = useStyles(); + const { children } = props; + return ( +
+ {children} +
+ ); +} + +Info.propTypes = { + children: PropTypes.node +}; diff --git a/src/components/Typography/Muted.js b/src/components/Typography/Muted.js new file mode 100755 index 0000000000000000000000000000000000000000..97a31e454f19b021586b17990a7f82a6db5227e0 --- /dev/null +++ b/src/components/Typography/Muted.js @@ -0,0 +1,22 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// core components +import styles from "assets/jss/material-dashboard-react/components/typographyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Muted(props) { + const classes = useStyles(); + const { children } = props; + return ( +
+ {children} +
+ ); +} + +Muted.propTypes = { + children: PropTypes.node +}; diff --git a/src/components/Typography/Primary.js b/src/components/Typography/Primary.js new file mode 100755 index 0000000000000000000000000000000000000000..f0713a000054b6909c7ba41d990371f92da01aa6 --- /dev/null +++ b/src/components/Typography/Primary.js @@ -0,0 +1,22 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// core components +import styles from "assets/jss/material-dashboard-react/components/typographyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Primary(props) { + const classes = useStyles(); + const { children } = props; + return ( +
+ {children} +
+ ); +} + +Primary.propTypes = { + children: PropTypes.node +}; diff --git a/src/components/Typography/Quote.js b/src/components/Typography/Quote.js new file mode 100755 index 0000000000000000000000000000000000000000..264266921588d75dd32d2e3ca36413f7655174ab --- /dev/null +++ b/src/components/Typography/Quote.js @@ -0,0 +1,24 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// core components +import styles from "assets/jss/material-dashboard-react/components/typographyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Quote(props) { + const classes = useStyles(); + const { text, author } = props; + return ( +
+

{text}

+ {author} +
+ ); +} + +Quote.propTypes = { + text: PropTypes.node, + author: PropTypes.node +}; diff --git a/src/components/Typography/Success.js b/src/components/Typography/Success.js new file mode 100755 index 0000000000000000000000000000000000000000..573b9ea5bd78a14bdcb368d6e5d8faa71fdc117b --- /dev/null +++ b/src/components/Typography/Success.js @@ -0,0 +1,22 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// core components +import styles from "assets/jss/material-dashboard-react/components/typographyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Success(props) { + const classes = useStyles(); + const { children } = props; + return ( +
+ {children} +
+ ); +} + +Success.propTypes = { + children: PropTypes.node +}; diff --git a/src/components/Typography/Warning.js b/src/components/Typography/Warning.js new file mode 100755 index 0000000000000000000000000000000000000000..1a85b77f72f84b7040e2de64da62ccf57a5cff20 --- /dev/null +++ b/src/components/Typography/Warning.js @@ -0,0 +1,22 @@ +import React from "react"; +import PropTypes from "prop-types"; +// @material-ui/core components +import { makeStyles } from "@material-ui/core/styles"; +// core components +import styles from "assets/jss/material-dashboard-react/components/typographyStyle.js"; + +const useStyles = makeStyles(styles); + +export default function Warning(props) { + const classes = useStyles(); + const { children } = props; + return ( +
+ {children} +
+ ); +} + +Warning.propTypes = { + children: PropTypes.node +};