Showing
38 changed files
with
1046 additions
and
60 deletions
File moved
... | @@ -4,6 +4,43 @@ | ... | @@ -4,6 +4,43 @@ |
4 | "lockfileVersion": 1, | 4 | "lockfileVersion": 1, |
5 | "requires": true, | 5 | "requires": true, |
6 | "dependencies": { | 6 | "dependencies": { |
7 | + "@ant-design/colors": { | ||
8 | + "version": "6.0.0", | ||
9 | + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", | ||
10 | + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", | ||
11 | + "requires": { | ||
12 | + "@ctrl/tinycolor": "^3.4.0" | ||
13 | + } | ||
14 | + }, | ||
15 | + "@ant-design/icons": { | ||
16 | + "version": "4.6.2", | ||
17 | + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.6.2.tgz", | ||
18 | + "integrity": "sha512-QsBG2BxBYU/rxr2eb8b2cZ4rPKAPBpzAR+0v6rrZLp/lnyvflLH3tw1vregK+M7aJauGWjIGNdFmUfpAOtw25A==", | ||
19 | + "requires": { | ||
20 | + "@ant-design/colors": "^6.0.0", | ||
21 | + "@ant-design/icons-svg": "^4.0.0", | ||
22 | + "@babel/runtime": "^7.11.2", | ||
23 | + "classnames": "^2.2.6", | ||
24 | + "rc-util": "^5.9.4" | ||
25 | + } | ||
26 | + }, | ||
27 | + "@ant-design/icons-svg": { | ||
28 | + "version": "4.1.0", | ||
29 | + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz", | ||
30 | + "integrity": "sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ==" | ||
31 | + }, | ||
32 | + "@ant-design/react-slick": { | ||
33 | + "version": "0.28.3", | ||
34 | + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-0.28.3.tgz", | ||
35 | + "integrity": "sha512-u3onF2VevGRbkGbgpldVX/nzd7LFtLeZJE0x2xIFT2qYHKkJZ6QT/jQ7KqYK4UpeTndoyrbMqLN4DiJza4BVBg==", | ||
36 | + "requires": { | ||
37 | + "@babel/runtime": "^7.10.4", | ||
38 | + "classnames": "^2.2.5", | ||
39 | + "json2mq": "^0.2.0", | ||
40 | + "lodash": "^4.17.21", | ||
41 | + "resize-observer-polyfill": "^1.5.0" | ||
42 | + } | ||
43 | + }, | ||
7 | "@babel/code-frame": { | 44 | "@babel/code-frame": { |
8 | "version": "7.12.13", | 45 | "version": "7.12.13", |
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", | 46 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", |
... | @@ -1203,6 +1240,11 @@ | ... | @@ -1203,6 +1240,11 @@ |
1203 | "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", | 1240 | "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", |
1204 | "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" | 1241 | "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" |
1205 | }, | 1242 | }, |
1243 | + "@ctrl/tinycolor": { | ||
1244 | + "version": "3.4.0", | ||
1245 | + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz", | ||
1246 | + "integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==" | ||
1247 | + }, | ||
1206 | "@eslint/eslintrc": { | 1248 | "@eslint/eslintrc": { |
1207 | "version": "0.4.1", | 1249 | "version": "0.4.1", |
1208 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz", | 1250 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz", |
... | @@ -2276,6 +2318,15 @@ | ... | @@ -2276,6 +2318,15 @@ |
2276 | "@types/node": "*" | 2318 | "@types/node": "*" |
2277 | } | 2319 | } |
2278 | }, | 2320 | }, |
2321 | + "@types/hoist-non-react-statics": { | ||
2322 | + "version": "3.3.1", | ||
2323 | + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", | ||
2324 | + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", | ||
2325 | + "requires": { | ||
2326 | + "@types/react": "*", | ||
2327 | + "hoist-non-react-statics": "^3.3.0" | ||
2328 | + } | ||
2329 | + }, | ||
2279 | "@types/html-minifier-terser": { | 2330 | "@types/html-minifier-terser": { |
2280 | "version": "5.1.1", | 2331 | "version": "5.1.1", |
2281 | "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", | 2332 | "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", |
... | @@ -2354,11 +2405,37 @@ | ... | @@ -2354,11 +2405,37 @@ |
2354 | "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", | 2405 | "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", |
2355 | "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==" | 2406 | "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==" |
2356 | }, | 2407 | }, |
2408 | + "@types/prop-types": { | ||
2409 | + "version": "15.7.3", | ||
2410 | + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", | ||
2411 | + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" | ||
2412 | + }, | ||
2357 | "@types/q": { | 2413 | "@types/q": { |
2358 | "version": "1.5.4", | 2414 | "version": "1.5.4", |
2359 | "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", | 2415 | "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", |
2360 | "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" | 2416 | "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" |
2361 | }, | 2417 | }, |
2418 | + "@types/react": { | ||
2419 | + "version": "17.0.9", | ||
2420 | + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.9.tgz", | ||
2421 | + "integrity": "sha512-2Cw7FvevpJxQrCb+k5t6GH1KIvmadj5uBbjPaLlJB/nZWUj56e1ZqcD6zsoMFB47MsJUTFl9RJ132A7hb3QFJA==", | ||
2422 | + "requires": { | ||
2423 | + "@types/prop-types": "*", | ||
2424 | + "@types/scheduler": "*", | ||
2425 | + "csstype": "^3.0.2" | ||
2426 | + } | ||
2427 | + }, | ||
2428 | + "@types/react-redux": { | ||
2429 | + "version": "7.1.16", | ||
2430 | + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.16.tgz", | ||
2431 | + "integrity": "sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw==", | ||
2432 | + "requires": { | ||
2433 | + "@types/hoist-non-react-statics": "^3.3.0", | ||
2434 | + "@types/react": "*", | ||
2435 | + "hoist-non-react-statics": "^3.3.0", | ||
2436 | + "redux": "^4.0.0" | ||
2437 | + } | ||
2438 | + }, | ||
2362 | "@types/resolve": { | 2439 | "@types/resolve": { |
2363 | "version": "0.0.8", | 2440 | "version": "0.0.8", |
2364 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", | 2441 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", |
... | @@ -2367,6 +2444,11 @@ | ... | @@ -2367,6 +2444,11 @@ |
2367 | "@types/node": "*" | 2444 | "@types/node": "*" |
2368 | } | 2445 | } |
2369 | }, | 2446 | }, |
2447 | + "@types/scheduler": { | ||
2448 | + "version": "0.16.1", | ||
2449 | + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", | ||
2450 | + "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" | ||
2451 | + }, | ||
2370 | "@types/source-list-map": { | 2452 | "@types/source-list-map": { |
2371 | "version": "0.1.2", | 2453 | "version": "0.1.2", |
2372 | "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", | 2454 | "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", |
... | @@ -2851,6 +2933,55 @@ | ... | @@ -2851,6 +2933,55 @@ |
2851 | "color-convert": "^1.9.0" | 2933 | "color-convert": "^1.9.0" |
2852 | } | 2934 | } |
2853 | }, | 2935 | }, |
2936 | + "antd": { | ||
2937 | + "version": "4.16.1", | ||
2938 | + "resolved": "https://registry.npmjs.org/antd/-/antd-4.16.1.tgz", | ||
2939 | + "integrity": "sha512-v7KfUYvEAiqfTECKC4/VkpRPB/4RRxZLR3b2kKCYEtcj4nEHvsOKfO5CDbWVtSUmCehxOXNR2lV+UNy06KHBnA==", | ||
2940 | + "requires": { | ||
2941 | + "@ant-design/colors": "^6.0.0", | ||
2942 | + "@ant-design/icons": "^4.6.2", | ||
2943 | + "@ant-design/react-slick": "~0.28.1", | ||
2944 | + "@babel/runtime": "^7.12.5", | ||
2945 | + "array-tree-filter": "^2.1.0", | ||
2946 | + "classnames": "^2.2.6", | ||
2947 | + "copy-to-clipboard": "^3.2.0", | ||
2948 | + "lodash": "^4.17.21", | ||
2949 | + "moment": "^2.25.3", | ||
2950 | + "rc-cascader": "~1.4.0", | ||
2951 | + "rc-checkbox": "~2.3.0", | ||
2952 | + "rc-collapse": "~3.1.0", | ||
2953 | + "rc-dialog": "~8.5.1", | ||
2954 | + "rc-drawer": "~4.3.0", | ||
2955 | + "rc-dropdown": "~3.2.0", | ||
2956 | + "rc-field-form": "~1.20.0", | ||
2957 | + "rc-image": "~5.2.4", | ||
2958 | + "rc-input-number": "~7.1.0", | ||
2959 | + "rc-mentions": "~1.6.1", | ||
2960 | + "rc-menu": "~9.0.9", | ||
2961 | + "rc-motion": "^2.4.0", | ||
2962 | + "rc-notification": "~4.5.7", | ||
2963 | + "rc-pagination": "~3.1.6", | ||
2964 | + "rc-picker": "~2.5.10", | ||
2965 | + "rc-progress": "~3.1.0", | ||
2966 | + "rc-rate": "~2.9.0", | ||
2967 | + "rc-resize-observer": "^1.0.0", | ||
2968 | + "rc-select": "~12.1.6", | ||
2969 | + "rc-slider": "~9.7.1", | ||
2970 | + "rc-steps": "~4.1.0", | ||
2971 | + "rc-switch": "~3.2.0", | ||
2972 | + "rc-table": "~7.15.1", | ||
2973 | + "rc-tabs": "~11.9.1", | ||
2974 | + "rc-textarea": "~0.3.0", | ||
2975 | + "rc-tooltip": "~5.1.1", | ||
2976 | + "rc-tree": "~4.1.0", | ||
2977 | + "rc-tree-select": "~4.3.0", | ||
2978 | + "rc-trigger": "^5.2.1", | ||
2979 | + "rc-upload": "~4.3.0", | ||
2980 | + "rc-util": "^5.13.1", | ||
2981 | + "scroll-into-view-if-needed": "^2.2.25", | ||
2982 | + "warning": "^4.0.3" | ||
2983 | + } | ||
2984 | + }, | ||
2854 | "anymatch": { | 2985 | "anymatch": { |
2855 | "version": "3.1.2", | 2986 | "version": "3.1.2", |
2856 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", | 2987 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", |
... | @@ -2919,6 +3050,11 @@ | ... | @@ -2919,6 +3050,11 @@ |
2919 | "is-string": "^1.0.5" | 3050 | "is-string": "^1.0.5" |
2920 | } | 3051 | } |
2921 | }, | 3052 | }, |
3053 | + "array-tree-filter": { | ||
3054 | + "version": "2.1.0", | ||
3055 | + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", | ||
3056 | + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" | ||
3057 | + }, | ||
2922 | "array-union": { | 3058 | "array-union": { |
2923 | "version": "2.1.0", | 3059 | "version": "2.1.0", |
2924 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", | 3060 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", |
... | @@ -3040,6 +3176,11 @@ | ... | @@ -3040,6 +3176,11 @@ |
3040 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", | 3176 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", |
3041 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" | 3177 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" |
3042 | }, | 3178 | }, |
3179 | + "async-validator": { | ||
3180 | + "version": "3.5.2", | ||
3181 | + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.2.tgz", | ||
3182 | + "integrity": "sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==" | ||
3183 | + }, | ||
3043 | "asynckit": { | 3184 | "asynckit": { |
3044 | "version": "0.4.0", | 3185 | "version": "0.4.0", |
3045 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | 3186 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", |
... | @@ -4085,6 +4226,11 @@ | ... | @@ -4085,6 +4226,11 @@ |
4085 | } | 4226 | } |
4086 | } | 4227 | } |
4087 | }, | 4228 | }, |
4229 | + "classnames": { | ||
4230 | + "version": "2.3.1", | ||
4231 | + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", | ||
4232 | + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" | ||
4233 | + }, | ||
4088 | "clean-css": { | 4234 | "clean-css": { |
4089 | "version": "4.2.3", | 4235 | "version": "4.2.3", |
4090 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", | 4236 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", |
... | @@ -4253,6 +4399,11 @@ | ... | @@ -4253,6 +4399,11 @@ |
4253 | } | 4399 | } |
4254 | } | 4400 | } |
4255 | }, | 4401 | }, |
4402 | + "compute-scroll-into-view": { | ||
4403 | + "version": "1.0.17", | ||
4404 | + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", | ||
4405 | + "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" | ||
4406 | + }, | ||
4256 | "concat-map": { | 4407 | "concat-map": { |
4257 | "version": "0.0.1", | 4408 | "version": "0.0.1", |
4258 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | 4409 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", |
... | @@ -4372,6 +4523,14 @@ | ... | @@ -4372,6 +4523,14 @@ |
4372 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", | 4523 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", |
4373 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" | 4524 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" |
4374 | }, | 4525 | }, |
4526 | + "copy-to-clipboard": { | ||
4527 | + "version": "3.3.1", | ||
4528 | + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", | ||
4529 | + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", | ||
4530 | + "requires": { | ||
4531 | + "toggle-selection": "^1.0.6" | ||
4532 | + } | ||
4533 | + }, | ||
4375 | "core-js": { | 4534 | "core-js": { |
4376 | "version": "3.13.1", | 4535 | "version": "3.13.1", |
4377 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.13.1.tgz", | 4536 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.13.1.tgz", |
... | @@ -4799,6 +4958,11 @@ | ... | @@ -4799,6 +4958,11 @@ |
4799 | } | 4958 | } |
4800 | } | 4959 | } |
4801 | }, | 4960 | }, |
4961 | + "csstype": { | ||
4962 | + "version": "3.0.8", | ||
4963 | + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", | ||
4964 | + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" | ||
4965 | + }, | ||
4802 | "cyclist": { | 4966 | "cyclist": { |
4803 | "version": "1.0.1", | 4967 | "version": "1.0.1", |
4804 | "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", | 4968 | "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", |
... | @@ -4828,6 +4992,11 @@ | ... | @@ -4828,6 +4992,11 @@ |
4828 | "whatwg-url": "^8.0.0" | 4992 | "whatwg-url": "^8.0.0" |
4829 | } | 4993 | } |
4830 | }, | 4994 | }, |
4995 | + "date-fns": { | ||
4996 | + "version": "2.22.1", | ||
4997 | + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.22.1.tgz", | ||
4998 | + "integrity": "sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg==" | ||
4999 | + }, | ||
4831 | "debug": { | 5000 | "debug": { |
4832 | "version": "4.3.1", | 5001 | "version": "4.3.1", |
4833 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | 5002 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", |
... | @@ -5112,6 +5281,11 @@ | ... | @@ -5112,6 +5281,11 @@ |
5112 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz", | 5281 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz", |
5113 | "integrity": "sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw==" | 5282 | "integrity": "sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw==" |
5114 | }, | 5283 | }, |
5284 | + "dom-align": { | ||
5285 | + "version": "1.12.2", | ||
5286 | + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.2.tgz", | ||
5287 | + "integrity": "sha512-pHuazgqrsTFrGU2WLDdXxCFabkdQDx72ddkraZNih1KsMcN5qsRSTR9O4VJRlwTPCPb5COYg3LOfiMHHcPInHg==" | ||
5288 | + }, | ||
5115 | "dom-converter": { | 5289 | "dom-converter": { |
5116 | "version": "0.2.0", | 5290 | "version": "0.2.0", |
5117 | "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", | 5291 | "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", |
... | @@ -6659,6 +6833,14 @@ | ... | @@ -6659,6 +6833,14 @@ |
6659 | } | 6833 | } |
6660 | } | 6834 | } |
6661 | }, | 6835 | }, |
6836 | + "flux-standard-action": { | ||
6837 | + "version": "2.1.1", | ||
6838 | + "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-2.1.1.tgz", | ||
6839 | + "integrity": "sha512-W86GzmXmIiTVq/dpYVd2HtTIUX9c35Iq3ao3xR6qcKtuXgbu+BDEj72op5VnEIe/kpuSbhl+I8kT1iS2hpcusw==", | ||
6840 | + "requires": { | ||
6841 | + "lodash": "^4.17.15" | ||
6842 | + } | ||
6843 | + }, | ||
6662 | "follow-redirects": { | 6844 | "follow-redirects": { |
6663 | "version": "1.14.1", | 6845 | "version": "1.14.1", |
6664 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", | 6846 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", |
... | @@ -7834,6 +8016,11 @@ | ... | @@ -7834,6 +8016,11 @@ |
7834 | "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", | 8016 | "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", |
7835 | "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" | 8017 | "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" |
7836 | }, | 8018 | }, |
8019 | + "is-promise": { | ||
8020 | + "version": "2.2.2", | ||
8021 | + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", | ||
8022 | + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" | ||
8023 | + }, | ||
7837 | "is-regex": { | 8024 | "is-regex": { |
7838 | "version": "1.1.3", | 8025 | "version": "1.1.3", |
7839 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", | 8026 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", |
... | @@ -9530,6 +9717,14 @@ | ... | @@ -9530,6 +9717,14 @@ |
9530 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", | 9717 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", |
9531 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" | 9718 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" |
9532 | }, | 9719 | }, |
9720 | + "json2mq": { | ||
9721 | + "version": "0.2.0", | ||
9722 | + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", | ||
9723 | + "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", | ||
9724 | + "requires": { | ||
9725 | + "string-convert": "^0.2.0" | ||
9726 | + } | ||
9727 | + }, | ||
9533 | "json3": { | 9728 | "json3": { |
9534 | "version": "3.3.3", | 9729 | "version": "3.3.3", |
9535 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", | 9730 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", |
... | @@ -10104,6 +10299,11 @@ | ... | @@ -10104,6 +10299,11 @@ |
10104 | "minimist": "^1.2.5" | 10299 | "minimist": "^1.2.5" |
10105 | } | 10300 | } |
10106 | }, | 10301 | }, |
10302 | + "moment": { | ||
10303 | + "version": "2.29.1", | ||
10304 | + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", | ||
10305 | + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" | ||
10306 | + }, | ||
10107 | "move-concurrently": { | 10307 | "move-concurrently": { |
10108 | "version": "1.0.1", | 10308 | "version": "1.0.1", |
10109 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", | 10309 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", |
... | @@ -12250,6 +12450,382 @@ | ... | @@ -12250,6 +12450,382 @@ |
12250 | } | 12450 | } |
12251 | } | 12451 | } |
12252 | }, | 12452 | }, |
12453 | + "rc-align": { | ||
12454 | + "version": "4.0.9", | ||
12455 | + "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.9.tgz", | ||
12456 | + "integrity": "sha512-myAM2R4qoB6LqBul0leaqY8gFaiECDJ3MtQDmzDo9xM9NRT/04TvWOYd2YHU9zvGzqk9QXF6S9/MifzSKDZeMw==", | ||
12457 | + "requires": { | ||
12458 | + "@babel/runtime": "^7.10.1", | ||
12459 | + "classnames": "2.x", | ||
12460 | + "dom-align": "^1.7.0", | ||
12461 | + "rc-util": "^5.3.0", | ||
12462 | + "resize-observer-polyfill": "^1.5.1" | ||
12463 | + } | ||
12464 | + }, | ||
12465 | + "rc-cascader": { | ||
12466 | + "version": "1.4.3", | ||
12467 | + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-1.4.3.tgz", | ||
12468 | + "integrity": "sha512-Q4l9Mv8aaISJ+giVnM9IaXxDeMqHUGLvi4F+LksS6pHlaKlN4awop/L+IMjIXpL+ug/ojaCyv/ixcVopJYYCVA==", | ||
12469 | + "requires": { | ||
12470 | + "@babel/runtime": "^7.12.5", | ||
12471 | + "array-tree-filter": "^2.1.0", | ||
12472 | + "rc-trigger": "^5.0.4", | ||
12473 | + "rc-util": "^5.0.1", | ||
12474 | + "warning": "^4.0.1" | ||
12475 | + } | ||
12476 | + }, | ||
12477 | + "rc-checkbox": { | ||
12478 | + "version": "2.3.2", | ||
12479 | + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.3.2.tgz", | ||
12480 | + "integrity": "sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==", | ||
12481 | + "requires": { | ||
12482 | + "@babel/runtime": "^7.10.1", | ||
12483 | + "classnames": "^2.2.1" | ||
12484 | + } | ||
12485 | + }, | ||
12486 | + "rc-collapse": { | ||
12487 | + "version": "3.1.1", | ||
12488 | + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.1.1.tgz", | ||
12489 | + "integrity": "sha512-/oetKApTHzGGeR8Q8vD168EXkCs2MpEIrURGyy2D+LrrJd29LY/huuIMvOiJoSV6W3bcGhJqIdgHtg1Dxn1smA==", | ||
12490 | + "requires": { | ||
12491 | + "@babel/runtime": "^7.10.1", | ||
12492 | + "classnames": "2.x", | ||
12493 | + "rc-motion": "^2.3.4", | ||
12494 | + "rc-util": "^5.2.1", | ||
12495 | + "shallowequal": "^1.1.0" | ||
12496 | + } | ||
12497 | + }, | ||
12498 | + "rc-dialog": { | ||
12499 | + "version": "8.5.2", | ||
12500 | + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.5.2.tgz", | ||
12501 | + "integrity": "sha512-3n4taFcjqhTE9uNuzjB+nPDeqgRBTEGBfe46mb1e7r88DgDo0lL4NnxY/PZ6PJKd2tsCt+RrgF/+YeTvJ/Thsw==", | ||
12502 | + "requires": { | ||
12503 | + "@babel/runtime": "^7.10.1", | ||
12504 | + "classnames": "^2.2.6", | ||
12505 | + "rc-motion": "^2.3.0", | ||
12506 | + "rc-util": "^5.6.1" | ||
12507 | + } | ||
12508 | + }, | ||
12509 | + "rc-drawer": { | ||
12510 | + "version": "4.3.1", | ||
12511 | + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-4.3.1.tgz", | ||
12512 | + "integrity": "sha512-GMfFy4maqxS9faYXEhQ+0cA1xtkddEQzraf6SAdzWbn444DrrLogwYPk1NXSpdXjLCLxgxOj9MYtyYG42JsfXg==", | ||
12513 | + "requires": { | ||
12514 | + "@babel/runtime": "^7.10.1", | ||
12515 | + "classnames": "^2.2.6", | ||
12516 | + "rc-util": "^5.7.0" | ||
12517 | + } | ||
12518 | + }, | ||
12519 | + "rc-dropdown": { | ||
12520 | + "version": "3.2.0", | ||
12521 | + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-3.2.0.tgz", | ||
12522 | + "integrity": "sha512-j1HSw+/QqlhxyTEF6BArVZnTmezw2LnSmRk6I9W7BCqNCKaRwleRmMMs1PHbuaG8dKHVqP6e21RQ7vPBLVnnNw==", | ||
12523 | + "requires": { | ||
12524 | + "@babel/runtime": "^7.10.1", | ||
12525 | + "classnames": "^2.2.6", | ||
12526 | + "rc-trigger": "^5.0.4" | ||
12527 | + } | ||
12528 | + }, | ||
12529 | + "rc-field-form": { | ||
12530 | + "version": "1.20.1", | ||
12531 | + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.20.1.tgz", | ||
12532 | + "integrity": "sha512-f64KEZop7zSlrG4ef/PLlH12SLn6iHDQ3sTG+RfKBM45hikwV1i8qMf53xoX12NvXXWg1VwchggX/FSso4bWaA==", | ||
12533 | + "requires": { | ||
12534 | + "@babel/runtime": "^7.8.4", | ||
12535 | + "async-validator": "^3.0.3", | ||
12536 | + "rc-util": "^5.8.0" | ||
12537 | + } | ||
12538 | + }, | ||
12539 | + "rc-image": { | ||
12540 | + "version": "5.2.4", | ||
12541 | + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-5.2.4.tgz", | ||
12542 | + "integrity": "sha512-kWOjhZC1OoGKfvWqtDoO9r8WUNswBwnjcstI6rf7HMudz0usmbGvewcWqsOhyaBRJL9+I4eeG+xiAoxV1xi75Q==", | ||
12543 | + "requires": { | ||
12544 | + "@babel/runtime": "^7.11.2", | ||
12545 | + "classnames": "^2.2.6", | ||
12546 | + "rc-dialog": "~8.5.0", | ||
12547 | + "rc-util": "^5.0.6" | ||
12548 | + } | ||
12549 | + }, | ||
12550 | + "rc-input-number": { | ||
12551 | + "version": "7.1.3", | ||
12552 | + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.1.3.tgz", | ||
12553 | + "integrity": "sha512-o7/YTXAnxio53lCV402OcFRn8/jcm6YfKjCzPd+al0drQ7oyQkjQqcWbacSQwwN4gCHmqXGfgnRuAuBHoYz1dw==", | ||
12554 | + "requires": { | ||
12555 | + "@babel/runtime": "^7.10.1", | ||
12556 | + "classnames": "^2.2.5", | ||
12557 | + "rc-util": "^5.9.8" | ||
12558 | + } | ||
12559 | + }, | ||
12560 | + "rc-mentions": { | ||
12561 | + "version": "1.6.1", | ||
12562 | + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-1.6.1.tgz", | ||
12563 | + "integrity": "sha512-LDzGI8jJVGnkhpTZxZuYBhMz3avcZZqPGejikchh97xPni/g4ht714Flh7DVvuzHQ+BoKHhIjobHnw1rcP8erg==", | ||
12564 | + "requires": { | ||
12565 | + "@babel/runtime": "^7.10.1", | ||
12566 | + "classnames": "^2.2.6", | ||
12567 | + "rc-menu": "^9.0.0", | ||
12568 | + "rc-textarea": "^0.3.0", | ||
12569 | + "rc-trigger": "^5.0.4", | ||
12570 | + "rc-util": "^5.0.1" | ||
12571 | + } | ||
12572 | + }, | ||
12573 | + "rc-menu": { | ||
12574 | + "version": "9.0.10", | ||
12575 | + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.0.10.tgz", | ||
12576 | + "integrity": "sha512-wb7fZZ3f5KBqr7v3q8U1DB5K4SEm31KLPe/aANyrHajVJjQpiiGTMLF7ZB7vyqjC4QJq0SJewB4FkumT2U86fw==", | ||
12577 | + "requires": { | ||
12578 | + "@babel/runtime": "^7.10.1", | ||
12579 | + "classnames": "2.x", | ||
12580 | + "rc-motion": "^2.4.3", | ||
12581 | + "rc-overflow": "^1.2.0", | ||
12582 | + "rc-trigger": "^5.1.2", | ||
12583 | + "rc-util": "^5.12.0", | ||
12584 | + "shallowequal": "^1.1.0" | ||
12585 | + } | ||
12586 | + }, | ||
12587 | + "rc-motion": { | ||
12588 | + "version": "2.4.4", | ||
12589 | + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.4.4.tgz", | ||
12590 | + "integrity": "sha512-ms7n1+/TZQBS0Ydd2Q5P4+wJTSOrhIrwNxLXCZpR7Fa3/oac7Yi803HDALc2hLAKaCTQtw9LmQeB58zcwOsqlQ==", | ||
12591 | + "requires": { | ||
12592 | + "@babel/runtime": "^7.11.1", | ||
12593 | + "classnames": "^2.2.1", | ||
12594 | + "rc-util": "^5.2.1" | ||
12595 | + } | ||
12596 | + }, | ||
12597 | + "rc-notification": { | ||
12598 | + "version": "4.5.7", | ||
12599 | + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.5.7.tgz", | ||
12600 | + "integrity": "sha512-zhTGUjBIItbx96SiRu3KVURcLOydLUHZCPpYEn1zvh+re//Tnq/wSxN4FKgp38n4HOgHSVxcLEeSxBMTeBBDdw==", | ||
12601 | + "requires": { | ||
12602 | + "@babel/runtime": "^7.10.1", | ||
12603 | + "classnames": "2.x", | ||
12604 | + "rc-motion": "^2.2.0", | ||
12605 | + "rc-util": "^5.0.1" | ||
12606 | + } | ||
12607 | + }, | ||
12608 | + "rc-overflow": { | ||
12609 | + "version": "1.2.1", | ||
12610 | + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.2.1.tgz", | ||
12611 | + "integrity": "sha512-TCB8QiEnmNUbsJZX1GU8ZvIgVxk42eu3yaRdDZc2HFjVeT3HBSfscVaCVzBuH3NR5IWrQLodI0p6MZEGFn+KiA==", | ||
12612 | + "requires": { | ||
12613 | + "@babel/runtime": "^7.11.1", | ||
12614 | + "classnames": "^2.2.1", | ||
12615 | + "rc-resize-observer": "^1.0.0", | ||
12616 | + "rc-util": "^5.5.1" | ||
12617 | + } | ||
12618 | + }, | ||
12619 | + "rc-pagination": { | ||
12620 | + "version": "3.1.6", | ||
12621 | + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.6.tgz", | ||
12622 | + "integrity": "sha512-Pb2zJEt8uxXzYCWx/2qwsYZ3vSS9Eqdw0cJBli6C58/iYhmvutSBqrBJh51Z5UzYc5ZcW5CMeP5LbbKE1J3rpw==", | ||
12623 | + "requires": { | ||
12624 | + "@babel/runtime": "^7.10.1", | ||
12625 | + "classnames": "^2.2.1" | ||
12626 | + } | ||
12627 | + }, | ||
12628 | + "rc-picker": { | ||
12629 | + "version": "2.5.10", | ||
12630 | + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.5.10.tgz", | ||
12631 | + "integrity": "sha512-d2or2jql9SSY8CaRPybpbKkXBq3bZ6g88UKyWQZBLTCrc92Xm87RfRC/P3UEQo/CLmia3jVF7IXVi1HmNe2DZA==", | ||
12632 | + "requires": { | ||
12633 | + "@babel/runtime": "^7.10.1", | ||
12634 | + "classnames": "^2.2.1", | ||
12635 | + "date-fns": "^2.15.0", | ||
12636 | + "moment": "^2.24.0", | ||
12637 | + "rc-trigger": "^5.0.4", | ||
12638 | + "rc-util": "^5.4.0", | ||
12639 | + "shallowequal": "^1.1.0" | ||
12640 | + } | ||
12641 | + }, | ||
12642 | + "rc-progress": { | ||
12643 | + "version": "3.1.4", | ||
12644 | + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.1.4.tgz", | ||
12645 | + "integrity": "sha512-XBAif08eunHssGeIdxMXOmRQRULdHaDdIFENQ578CMb4dyewahmmfJRyab+hw4KH4XssEzzYOkAInTLS7JJG+Q==", | ||
12646 | + "requires": { | ||
12647 | + "@babel/runtime": "^7.10.1", | ||
12648 | + "classnames": "^2.2.6" | ||
12649 | + } | ||
12650 | + }, | ||
12651 | + "rc-rate": { | ||
12652 | + "version": "2.9.1", | ||
12653 | + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.9.1.tgz", | ||
12654 | + "integrity": "sha512-MmIU7FT8W4LYRRHJD1sgG366qKtSaKb67D0/vVvJYR0lrCuRrCiVQ5qhfT5ghVO4wuVIORGpZs7ZKaYu+KMUzA==", | ||
12655 | + "requires": { | ||
12656 | + "@babel/runtime": "^7.10.1", | ||
12657 | + "classnames": "^2.2.5", | ||
12658 | + "rc-util": "^5.0.1" | ||
12659 | + } | ||
12660 | + }, | ||
12661 | + "rc-resize-observer": { | ||
12662 | + "version": "1.0.0", | ||
12663 | + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.0.0.tgz", | ||
12664 | + "integrity": "sha512-RgKGukg1mlzyGdvzF7o/LGFC8AeoMH9aGzXTUdp6m+OApvmRdUuOscq/Y2O45cJA+rXt1ApWlpFoOIioXL3AGg==", | ||
12665 | + "requires": { | ||
12666 | + "@babel/runtime": "^7.10.1", | ||
12667 | + "classnames": "^2.2.1", | ||
12668 | + "rc-util": "^5.0.0", | ||
12669 | + "resize-observer-polyfill": "^1.5.1" | ||
12670 | + } | ||
12671 | + }, | ||
12672 | + "rc-select": { | ||
12673 | + "version": "12.1.10", | ||
12674 | + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-12.1.10.tgz", | ||
12675 | + "integrity": "sha512-LQdUhYncvcULlrNcAShYicc1obPtnNK7/rvCD+YCm0b2BLLYxl3M3b/HOX6o+ppPej+yZulkUPeU6gcgcp9nag==", | ||
12676 | + "requires": { | ||
12677 | + "@babel/runtime": "^7.10.1", | ||
12678 | + "classnames": "2.x", | ||
12679 | + "rc-motion": "^2.0.1", | ||
12680 | + "rc-overflow": "^1.0.0", | ||
12681 | + "rc-trigger": "^5.0.4", | ||
12682 | + "rc-util": "^5.9.8", | ||
12683 | + "rc-virtual-list": "^3.2.0" | ||
12684 | + } | ||
12685 | + }, | ||
12686 | + "rc-slider": { | ||
12687 | + "version": "9.7.2", | ||
12688 | + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-9.7.2.tgz", | ||
12689 | + "integrity": "sha512-mVaLRpDo6otasBs6yVnG02ykI3K6hIrLTNfT5eyaqduFv95UODI9PDS6fWuVVehVpdS4ENgOSwsTjrPVun+k9g==", | ||
12690 | + "requires": { | ||
12691 | + "@babel/runtime": "^7.10.1", | ||
12692 | + "classnames": "^2.2.5", | ||
12693 | + "rc-tooltip": "^5.0.1", | ||
12694 | + "rc-util": "^5.0.0", | ||
12695 | + "shallowequal": "^1.1.0" | ||
12696 | + } | ||
12697 | + }, | ||
12698 | + "rc-steps": { | ||
12699 | + "version": "4.1.3", | ||
12700 | + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-4.1.3.tgz", | ||
12701 | + "integrity": "sha512-GXrMfWQOhN3sVze3JnzNboHpQdNHcdFubOETUHyDpa/U3HEKBZC3xJ8XK4paBgF4OJ3bdUVLC+uBPc6dCxvDYA==", | ||
12702 | + "requires": { | ||
12703 | + "@babel/runtime": "^7.10.2", | ||
12704 | + "classnames": "^2.2.3", | ||
12705 | + "rc-util": "^5.0.1" | ||
12706 | + } | ||
12707 | + }, | ||
12708 | + "rc-switch": { | ||
12709 | + "version": "3.2.2", | ||
12710 | + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-3.2.2.tgz", | ||
12711 | + "integrity": "sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==", | ||
12712 | + "requires": { | ||
12713 | + "@babel/runtime": "^7.10.1", | ||
12714 | + "classnames": "^2.2.1", | ||
12715 | + "rc-util": "^5.0.1" | ||
12716 | + } | ||
12717 | + }, | ||
12718 | + "rc-table": { | ||
12719 | + "version": "7.15.2", | ||
12720 | + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.15.2.tgz", | ||
12721 | + "integrity": "sha512-TAs7kCpIZwc2mtvD8CMrXSM6TqJDUsy0rUEV1YgRru33T8bjtAtc+9xW/KC1VWROJlHSpU0R0kXjFs9h/6+IzQ==", | ||
12722 | + "requires": { | ||
12723 | + "@babel/runtime": "^7.10.1", | ||
12724 | + "classnames": "^2.2.5", | ||
12725 | + "rc-resize-observer": "^1.0.0", | ||
12726 | + "rc-util": "^5.13.0", | ||
12727 | + "shallowequal": "^1.1.0" | ||
12728 | + } | ||
12729 | + }, | ||
12730 | + "rc-tabs": { | ||
12731 | + "version": "11.9.1", | ||
12732 | + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-11.9.1.tgz", | ||
12733 | + "integrity": "sha512-CLNx3qaWnO8KBWPd+7r52Pfk0MoPyKtlr+2ltWq2I9iqAjd1nZu6iBpQP7wbWBwIomyeFNw/WjHdRN7VcX5Qtw==", | ||
12734 | + "requires": { | ||
12735 | + "@babel/runtime": "^7.11.2", | ||
12736 | + "classnames": "2.x", | ||
12737 | + "rc-dropdown": "^3.2.0", | ||
12738 | + "rc-menu": "^9.0.0", | ||
12739 | + "rc-resize-observer": "^1.0.0", | ||
12740 | + "rc-util": "^5.5.0" | ||
12741 | + } | ||
12742 | + }, | ||
12743 | + "rc-textarea": { | ||
12744 | + "version": "0.3.4", | ||
12745 | + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-0.3.4.tgz", | ||
12746 | + "integrity": "sha512-ILUYx831ZukQPv3m7R4RGRtVVWmL1LV4ME03L22mvT56US0DGCJJaRTHs4vmpcSjFHItph5OTmhodY4BOwy81A==", | ||
12747 | + "requires": { | ||
12748 | + "@babel/runtime": "^7.10.1", | ||
12749 | + "classnames": "^2.2.1", | ||
12750 | + "rc-resize-observer": "^1.0.0", | ||
12751 | + "rc-util": "^5.7.0" | ||
12752 | + } | ||
12753 | + }, | ||
12754 | + "rc-tooltip": { | ||
12755 | + "version": "5.1.1", | ||
12756 | + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.1.1.tgz", | ||
12757 | + "integrity": "sha512-alt8eGMJulio6+4/uDm7nvV+rJq9bsfxFDCI0ljPdbuoygUscbsMYb6EQgwib/uqsXQUvzk+S7A59uYHmEgmDA==", | ||
12758 | + "requires": { | ||
12759 | + "@babel/runtime": "^7.11.2", | ||
12760 | + "rc-trigger": "^5.0.0" | ||
12761 | + } | ||
12762 | + }, | ||
12763 | + "rc-tree": { | ||
12764 | + "version": "4.1.5", | ||
12765 | + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-4.1.5.tgz", | ||
12766 | + "integrity": "sha512-q2vjcmnBDylGZ9/ZW4F9oZMKMJdbFWC7um+DAQhZG1nqyg1iwoowbBggUDUaUOEryJP+08bpliEAYnzJXbI5xQ==", | ||
12767 | + "requires": { | ||
12768 | + "@babel/runtime": "^7.10.1", | ||
12769 | + "classnames": "2.x", | ||
12770 | + "rc-motion": "^2.0.1", | ||
12771 | + "rc-util": "^5.0.0", | ||
12772 | + "rc-virtual-list": "^3.0.1" | ||
12773 | + } | ||
12774 | + }, | ||
12775 | + "rc-tree-select": { | ||
12776 | + "version": "4.3.3", | ||
12777 | + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-4.3.3.tgz", | ||
12778 | + "integrity": "sha512-0tilOHLJA6p+TNg4kD559XnDX3PTEYuoSF7m7ryzFLAYvdEEPtjn0QZc5z6L0sMKBiBlj8a2kf0auw8XyHU3lA==", | ||
12779 | + "requires": { | ||
12780 | + "@babel/runtime": "^7.10.1", | ||
12781 | + "classnames": "2.x", | ||
12782 | + "rc-select": "^12.0.0", | ||
12783 | + "rc-tree": "^4.0.0", | ||
12784 | + "rc-util": "^5.0.5" | ||
12785 | + } | ||
12786 | + }, | ||
12787 | + "rc-trigger": { | ||
12788 | + "version": "5.2.8", | ||
12789 | + "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.2.8.tgz", | ||
12790 | + "integrity": "sha512-Tn84oGmvNBLXI+ptpzxyJx4ArKTduuB6l74ShDLhDaJaF9f5JAMizfx31L30ELVIzRr3Ze4sekG7rzwPGwVOdw==", | ||
12791 | + "requires": { | ||
12792 | + "@babel/runtime": "^7.11.2", | ||
12793 | + "classnames": "^2.2.6", | ||
12794 | + "rc-align": "^4.0.0", | ||
12795 | + "rc-motion": "^2.0.0", | ||
12796 | + "rc-util": "^5.5.0" | ||
12797 | + } | ||
12798 | + }, | ||
12799 | + "rc-upload": { | ||
12800 | + "version": "4.3.0", | ||
12801 | + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.3.0.tgz", | ||
12802 | + "integrity": "sha512-wDXf1ZdUTwBIfagTof1MJDjOHZ6xluD0xcgojYZeAZSi+3Doyc21jNV8bRIeK5jx/OQmllrpQp1/MWKkqvkBhg==", | ||
12803 | + "requires": { | ||
12804 | + "@babel/runtime": "^7.10.1", | ||
12805 | + "classnames": "^2.2.5", | ||
12806 | + "rc-util": "^5.2.0" | ||
12807 | + } | ||
12808 | + }, | ||
12809 | + "rc-util": { | ||
12810 | + "version": "5.13.1", | ||
12811 | + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.13.1.tgz", | ||
12812 | + "integrity": "sha512-Dws2tjXBBihfjVQFlG5JzZ/5O3Wutctm0W94Wb1+M7GD2roWJPrQdSa4AkWm2pn0Ms32zoVPPkWodFeAYZPLfA==", | ||
12813 | + "requires": { | ||
12814 | + "@babel/runtime": "^7.12.5", | ||
12815 | + "react-is": "^16.12.0", | ||
12816 | + "shallowequal": "^1.1.0" | ||
12817 | + } | ||
12818 | + }, | ||
12819 | + "rc-virtual-list": { | ||
12820 | + "version": "3.2.6", | ||
12821 | + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.2.6.tgz", | ||
12822 | + "integrity": "sha512-8FiQLDzm3c/tMX0d62SQtKDhLH7zFlSI6pWBAPt+TUntEqd3Lz9zFAmpvTu8gkvUom/HCsDSZs4wfV4wDPWC0Q==", | ||
12823 | + "requires": { | ||
12824 | + "classnames": "^2.2.6", | ||
12825 | + "rc-resize-observer": "^1.0.0", | ||
12826 | + "rc-util": "^5.0.7" | ||
12827 | + } | ||
12828 | + }, | ||
12253 | "react": { | 12829 | "react": { |
12254 | "version": "17.0.2", | 12830 | "version": "17.0.2", |
12255 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", | 12831 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", |
... | @@ -12438,6 +13014,19 @@ | ... | @@ -12438,6 +13014,19 @@ |
12438 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", | 13014 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", |
12439 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" | 13015 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" |
12440 | }, | 13016 | }, |
13017 | + "react-redux": { | ||
13018 | + "version": "7.2.4", | ||
13019 | + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz", | ||
13020 | + "integrity": "sha512-hOQ5eOSkEJEXdpIKbnRyl04LhaWabkDPV+Ix97wqQX3T3d2NQ8DUblNXXtNMavc7DpswyQM6xfaN4HQDKNY2JA==", | ||
13021 | + "requires": { | ||
13022 | + "@babel/runtime": "^7.12.1", | ||
13023 | + "@types/react-redux": "^7.1.16", | ||
13024 | + "hoist-non-react-statics": "^3.3.2", | ||
13025 | + "loose-envify": "^1.4.0", | ||
13026 | + "prop-types": "^15.7.2", | ||
13027 | + "react-is": "^16.13.1" | ||
13028 | + } | ||
13029 | + }, | ||
12441 | "react-refresh": { | 13030 | "react-refresh": { |
12442 | "version": "0.8.3", | 13031 | "version": "0.8.3", |
12443 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", | 13032 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", |
... | @@ -12670,6 +13259,28 @@ | ... | @@ -12670,6 +13259,28 @@ |
12670 | "strip-indent": "^3.0.0" | 13259 | "strip-indent": "^3.0.0" |
12671 | } | 13260 | } |
12672 | }, | 13261 | }, |
13262 | + "redux": { | ||
13263 | + "version": "4.1.0", | ||
13264 | + "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz", | ||
13265 | + "integrity": "sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==", | ||
13266 | + "requires": { | ||
13267 | + "@babel/runtime": "^7.9.2" | ||
13268 | + } | ||
13269 | + }, | ||
13270 | + "redux-promise": { | ||
13271 | + "version": "0.6.0", | ||
13272 | + "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.6.0.tgz", | ||
13273 | + "integrity": "sha512-R2mGxJbPFgXyCNbFDE6LjTZhCEuACF54g1bxld3nqBhnRMX0OsUyWk77moF7UMGkUdl5WOAwc4BC5jOd1dunqQ==", | ||
13274 | + "requires": { | ||
13275 | + "flux-standard-action": "^2.0.3", | ||
13276 | + "is-promise": "^2.1.0" | ||
13277 | + } | ||
13278 | + }, | ||
13279 | + "redux-thunk": { | ||
13280 | + "version": "2.3.0", | ||
13281 | + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", | ||
13282 | + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" | ||
13283 | + }, | ||
12673 | "regenerate": { | 13284 | "regenerate": { |
12674 | "version": "1.4.2", | 13285 | "version": "1.4.2", |
12675 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", | 13286 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", |
... | @@ -12824,6 +13435,11 @@ | ... | @@ -12824,6 +13435,11 @@ |
12824 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", | 13435 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", |
12825 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" | 13436 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" |
12826 | }, | 13437 | }, |
13438 | + "resize-observer-polyfill": { | ||
13439 | + "version": "1.5.1", | ||
13440 | + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", | ||
13441 | + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" | ||
13442 | + }, | ||
12827 | "resolve": { | 13443 | "resolve": { |
12828 | "version": "1.18.1", | 13444 | "version": "1.18.1", |
12829 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", | 13445 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", |
... | @@ -13299,6 +13915,14 @@ | ... | @@ -13299,6 +13915,14 @@ |
13299 | "ajv-keywords": "^3.5.2" | 13915 | "ajv-keywords": "^3.5.2" |
13300 | } | 13916 | } |
13301 | }, | 13917 | }, |
13918 | + "scroll-into-view-if-needed": { | ||
13919 | + "version": "2.2.28", | ||
13920 | + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.28.tgz", | ||
13921 | + "integrity": "sha512-8LuxJSuFVc92+0AdNv4QOxRL4Abeo1DgLnGNkn1XlaujPH/3cCFz3QI60r2VNu4obJJROzgnIUw5TKQkZvZI1w==", | ||
13922 | + "requires": { | ||
13923 | + "compute-scroll-into-view": "^1.0.17" | ||
13924 | + } | ||
13925 | + }, | ||
13302 | "select-hose": { | 13926 | "select-hose": { |
13303 | "version": "2.0.0", | 13927 | "version": "2.0.0", |
13304 | "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", | 13928 | "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", |
... | @@ -13473,6 +14097,11 @@ | ... | @@ -13473,6 +14097,11 @@ |
13473 | "safe-buffer": "^5.0.1" | 14097 | "safe-buffer": "^5.0.1" |
13474 | } | 14098 | } |
13475 | }, | 14099 | }, |
14100 | + "shallowequal": { | ||
14101 | + "version": "1.1.0", | ||
14102 | + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", | ||
14103 | + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" | ||
14104 | + }, | ||
13476 | "shebang-command": { | 14105 | "shebang-command": { |
13477 | "version": "1.2.0", | 14106 | "version": "1.2.0", |
13478 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", | 14107 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", |
... | @@ -13992,6 +14621,11 @@ | ... | @@ -13992,6 +14621,11 @@ |
13992 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", | 14621 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", |
13993 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" | 14622 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" |
13994 | }, | 14623 | }, |
14624 | + "string-convert": { | ||
14625 | + "version": "0.2.1", | ||
14626 | + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", | ||
14627 | + "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" | ||
14628 | + }, | ||
13995 | "string-length": { | 14629 | "string-length": { |
13996 | "version": "4.0.2", | 14630 | "version": "4.0.2", |
13997 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", | 14631 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", |
... | @@ -14555,6 +15189,11 @@ | ... | @@ -14555,6 +15189,11 @@ |
14555 | "is-number": "^7.0.0" | 15189 | "is-number": "^7.0.0" |
14556 | } | 15190 | } |
14557 | }, | 15191 | }, |
15192 | + "toggle-selection": { | ||
15193 | + "version": "1.0.6", | ||
15194 | + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", | ||
15195 | + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" | ||
15196 | + }, | ||
14558 | "toidentifier": { | 15197 | "toidentifier": { |
14559 | "version": "1.0.0", | 15198 | "version": "1.0.0", |
14560 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", | 15199 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", |
... | @@ -15007,6 +15646,14 @@ | ... | @@ -15007,6 +15646,14 @@ |
15007 | "makeerror": "1.0.x" | 15646 | "makeerror": "1.0.x" |
15008 | } | 15647 | } |
15009 | }, | 15648 | }, |
15649 | + "warning": { | ||
15650 | + "version": "4.0.3", | ||
15651 | + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", | ||
15652 | + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", | ||
15653 | + "requires": { | ||
15654 | + "loose-envify": "^1.0.0" | ||
15655 | + } | ||
15656 | + }, | ||
15010 | "watchpack": { | 15657 | "watchpack": { |
15011 | "version": "1.7.5", | 15658 | "version": "1.7.5", |
15012 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", | 15659 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", | ... | ... |
... | @@ -6,12 +6,17 @@ | ... | @@ -6,12 +6,17 @@ |
6 | "@testing-library/jest-dom": "^5.12.0", | 6 | "@testing-library/jest-dom": "^5.12.0", |
7 | "@testing-library/react": "^11.2.7", | 7 | "@testing-library/react": "^11.2.7", |
8 | "@testing-library/user-event": "^12.8.3", | 8 | "@testing-library/user-event": "^12.8.3", |
9 | + "antd": "^4.16.1", | ||
9 | "axios": "^0.21.1", | 10 | "axios": "^0.21.1", |
10 | "http-proxy-middleware": "^2.0.0", | 11 | "http-proxy-middleware": "^2.0.0", |
11 | "react": "^17.0.2", | 12 | "react": "^17.0.2", |
12 | "react-dom": "^17.0.2", | 13 | "react-dom": "^17.0.2", |
14 | + "react-redux": "^7.2.4", | ||
13 | "react-router-dom": "^5.2.0", | 15 | "react-router-dom": "^5.2.0", |
14 | "react-scripts": "4.0.3", | 16 | "react-scripts": "4.0.3", |
17 | + "redux": "^4.1.0", | ||
18 | + "redux-promise": "^0.6.0", | ||
19 | + "redux-thunk": "^2.3.0", | ||
15 | "web-vitals": "^1.1.2" | 20 | "web-vitals": "^1.1.2" |
16 | }, | 21 | }, |
17 | "scripts": { | 22 | "scripts": { | ... | ... |
No preview for this file type
1 | - | ||
2 | import React from "react"; | 1 | import React from "react"; |
3 | import { | 2 | import { |
4 | BrowserRouter as Router, | 3 | BrowserRouter as Router, |
5 | Switch, | 4 | Switch, |
6 | Route, | 5 | Route, |
7 | - Link | 6 | + //Link |
8 | } from "react-router-dom"; | 7 | } from "react-router-dom"; |
9 | 8 | ||
10 | import LandingPage from './components/views/LandingPage/LandingPage' | 9 | import LandingPage from './components/views/LandingPage/LandingPage' |
11 | import LoginPage from './components/views/LoginPage/LoginPage' | 10 | import LoginPage from './components/views/LoginPage/LoginPage' |
12 | import RegisterPage from './components/views/RegisterPage/RegisterPage' | 11 | import RegisterPage from './components/views/RegisterPage/RegisterPage' |
13 | - | 12 | +import auth from './hoc/authentication' |
14 | 13 | ||
15 | function App() { | 14 | function App() { |
16 | return ( | 15 | return ( |
17 | <Router> | 16 | <Router> |
18 | <div> | 17 | <div> |
19 | - {/* | ||
20 | - A <Switch> looks through all its children <Route> | ||
21 | - elements and renders the first one whose path | ||
22 | - matches the current URL. Use a <Switch> any time | ||
23 | - you have multiple routes, but you want only one | ||
24 | - of them to render at a time | ||
25 | - */} | ||
26 | <Switch> | 18 | <Switch> |
27 | - <Route exact path="/"> | 19 | + {/* null, false에 대한 옵션 설명은 auth로 가서 확인*/} |
28 | - <LandingPage /> | 20 | + |
29 | - </Route> {/* | 21 | + <Route exact path="/" component={auth(LandingPage, null)} /> |
30 | - <Route exact path="/" component={LandingPage} /> 로 해도 똑같은 결과가 나옴! | ||
31 | - */} | ||
32 | 22 | ||
33 | - <Route path="/login"> | 23 | + <Route exact path="/login" component={auth(LoginPage, false)}/> |
34 | - <LoginPage /> | ||
35 | - </Route> | ||
36 | 24 | ||
37 | - <Route path="/register"> | 25 | + <Route exact path="/register" component={auth(RegisterPage, false)}/> |
38 | - <RegisterPage /> | 26 | + |
39 | - </Route> | 27 | + {/* |
28 | + <Route exact path="/" component={LandingPage} /> | ||
29 | + | ||
30 | + <Route exact path="/login" component={LoginPage}/> | ||
31 | + | ||
32 | + <Route exact path="/register" component={RegisterPage}/> | ||
33 | + */} | ||
40 | </Switch> | 34 | </Switch> |
41 | </div> | 35 | </div> |
42 | </Router> | 36 | </Router> | ... | ... |
We-Shop/client/src/_actions/types.js
0 → 100644
We-Shop/client/src/_actions/user_action.js
0 → 100644
1 | +import axios from 'axios'; | ||
2 | +import { | ||
3 | + LOGIN_USER, | ||
4 | + REGISTER_USER, | ||
5 | + AUTH_USER | ||
6 | +} from './types'; | ||
7 | +export function loginUser(logInfo) { | ||
8 | + const request = axios.post('/api/users/login', logInfo) // logInfo를 post로 전달 | ||
9 | + .then(response => response.data); // 서버에서 받은 데이터를 request에 저장 | ||
10 | + | ||
11 | + return { // return을 통해 Reducer로 보냄 | ||
12 | + // Reducer에서 previousState, action을 이용해 nextState로 만들기 때문 :: (previousState, action) => nextState | ||
13 | + // request를 reducer로 보내는 작업 | ||
14 | + | ||
15 | + // action은 type과 response을 넣어줘야 함 | ||
16 | + type: "LOGIN_USER", | ||
17 | + payload: request // payroad == response | ||
18 | + } | ||
19 | +} | ||
20 | + | ||
21 | +export function RegisterUser(regInfo) { | ||
22 | + const request = axios.post('/api/users/register', regInfo) // logInfo를 post로 전달 | ||
23 | + .then(response => response.data); // 서버에서 받은 데이터를 request에 저장 | ||
24 | + | ||
25 | + return { // return을 통해 Reducer로 보냄. | ||
26 | + // Reducer에서 previousState, action을 이용해 nextState로 만들기 때문 :: (previousState, action) => nextState | ||
27 | + // request를 reducer로 보내는 작업 | ||
28 | + | ||
29 | + // action은 type과 response을 넣어줘야 함 | ||
30 | + type: "REGISTER_USER", | ||
31 | + payload: request // payroad == response | ||
32 | + } | ||
33 | +} | ||
34 | + | ||
35 | +export function auth() { | ||
36 | + const request = axios.get('/api/users/auth') // logInfo를 post로 전달 | ||
37 | + .then(response => response.data); // 서버에서 받은 데이터를 request에 저장 | ||
38 | + | ||
39 | + return { | ||
40 | + | ||
41 | + type: "AUTH_USER", | ||
42 | + payload: request // payroad == response | ||
43 | + } | ||
44 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
We-Shop/client/src/_reducers/index.js
0 → 100644
1 | +// Redux에 있는 Store에 Reducer들이 여러가지 있을 수 있다. | ||
2 | +// -> why? : Reducer 안에서 하는 일은 | ||
3 | +// state가 어떻게 변하는지를 보여준 다음, 변한 마지막 값을 return 해주는 것. | ||
4 | +// 웹서비스를 제작하면서 user state, comment state ... 등등 다양한 기능에 대한 state들이 존재할 수 있고 | ||
5 | +// 각각 state마다 reducer가 있어서 user reducer, comment reducer ... 등등 다양한 reducer들이 존재할 수 있음. | ||
6 | +// ------------------------------------ | ||
7 | +// 이렇게 나눠진 다양한 reducer을 combineReducers을 통해 rootReducer에서 하나로 합쳐주는 기능을 만들 것임. | ||
8 | +import { combineReducers } from 'redux'; | ||
9 | +import user from './user_reducer'; // user(회원가입, 로그인, 인증, 로그아웃 기능이 있음) reducer | ||
10 | +// import comment from './comment_reducer'; // comment기능이 있을 때 reducer | ||
11 | + | ||
12 | +const rootReducer = combineReducers( { | ||
13 | + user | ||
14 | +}) | ||
15 | + | ||
16 | +// 다른 곳에서도 rootReducer을 쓸 수 있도록 | ||
17 | +export default rootReducer; | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
We-Shop/client/src/_reducers/user_reducer.js
0 → 100644
1 | +import { | ||
2 | + LOGIN_USER, | ||
3 | + REGISTER_USER, | ||
4 | + AUTH_USER | ||
5 | +} from '../_actions/types'; | ||
6 | + | ||
7 | + | ||
8 | +// reducer은 (previousState, action) => (nextState)로 | ||
9 | +export default function (prevState = {}, action) { | ||
10 | + switch (action.type) { | ||
11 | + case LOGIN_USER: | ||
12 | + return {...prevState, loginSuccess:action.payload} // 위의 prevState를 그대로 가져오고, | ||
13 | + // user_action.js에 있는 payload를 그대로 가져와서 return. | ||
14 | + // loginSuccess는 server/index.js 에서 login에 성공하면 json type으로 loginSuccess: true를 전달하라고 했기 때문 | ||
15 | + break; | ||
16 | + case REGISTER_USER: | ||
17 | + return {...prevState, success:action.payload} | ||
18 | + // success는 server/index.js 에서 register에 성공하면 json type으로 success: true를 전달하라고 했기 때문 | ||
19 | + break; | ||
20 | + | ||
21 | + case AUTH_USER: | ||
22 | + return {...prevState, user:action.payload} | ||
23 | + break; | ||
24 | + default: | ||
25 | + return prevState; | ||
26 | + } | ||
27 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +import React, {useEffect} from 'react' | ||
2 | +import axios from 'axios' | ||
3 | +import { withRouter } from 'react-router-dom'; | ||
4 | + | ||
5 | +function LandingPage(props) { | ||
6 | + | ||
7 | + // 로그아웃 버튼 클릭 됐을 때 | ||
8 | + const onLogoutClickedEvent = () => { | ||
9 | + axios.get('/api/users/logout') | ||
10 | + .then(response => { | ||
11 | + // 만약 success:true이면 로그인 페이지로 가기 | ||
12 | + if(response.data.success) | ||
13 | + props.history.push("/login"); | ||
14 | + else | ||
15 | + alert("Fail to logout.") | ||
16 | + }) | ||
17 | + } | ||
18 | + // 랜딩페이지에 들어오자마자 | ||
19 | + useEffect(() => { | ||
20 | + axios.get('/api/hello') // get request를 서버로 보냄 (endpoint는 /api/hello) | ||
21 | + .then(response => console.log(response.data)) // 서버로부터 응답 받은 내용을 콘솔에 출력 | ||
22 | + }, []) | ||
23 | + | ||
24 | + return ( | ||
25 | + <div style={{justifyContent:'center', alignItems: 'center', display:'flex', width:'100%'}}> | ||
26 | + <h1>시작 페이지</h1> | ||
27 | + <button onClick ={onLogoutClickedEvent}> Logout </button> | ||
28 | + </div> | ||
29 | + | ||
30 | + | ||
31 | + ) | ||
32 | +} | ||
33 | + | ||
34 | + | ||
35 | +export default withRouter(LandingPage) | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +import axios from 'axios'; | ||
2 | +//import { response } from 'express'; | ||
3 | +import React from 'react' | ||
4 | +import {useState} from 'react' | ||
5 | +import {useDispatch} from 'react-redux'; | ||
6 | +import {loginUser} from '../../../_actions/user_action' | ||
7 | +import { withRouter } from 'react-router-dom'; | ||
8 | + | ||
9 | +function LoginPage(props) { | ||
10 | + | ||
11 | + | ||
12 | + // 이 로그인페이지 안에서 input에 타이핑을 함으로써 데이터를 변화시켜주므로 state 사용. | ||
13 | + // 1-1. state을 사용하기 위해 state 만들어줌. | ||
14 | + const [Email, setEmail] = useState(""); // 1-2. email을 위한 state | ||
15 | + const [Password, setPassword] = useState(""); // 1-2. password를 위한 state | ||
16 | + //1-3. 아래 input value에 넣어줌 | ||
17 | + | ||
18 | + // 2-1. 타이핑할 때 타이핑 하는 거 보이게 하도록 핸들러를 만들어줌 | ||
19 | + const emailEvent = (event) => { | ||
20 | + setEmail(event.currentTarget.value) | ||
21 | + } | ||
22 | + const passwordEvent = (event) => { | ||
23 | + setPassword(event.currentTarget.value) | ||
24 | + | ||
25 | + } | ||
26 | + | ||
27 | + const dispatch = useDispatch(); | ||
28 | + const submitEvent = (event) => { | ||
29 | + event.preventDefault(); // 이걸 하지 않으면 버튼을 누를 때마다 refresh돼서 데이터 처리를 할 수 없음 | ||
30 | + | ||
31 | + //console.log('Email', Email); // 잘 나오는지 확인 | ||
32 | + //console.log('Password', Password); // 잘 나오는지 확인 | ||
33 | + | ||
34 | + let logInfo = { // 보내주기 위해 저장 | ||
35 | + email: Email, | ||
36 | + password: Password | ||
37 | + } | ||
38 | + | ||
39 | + dispatch(loginUser(logInfo)) // _actions폴더 user_action.js에 있음 | ||
40 | + .then(response => { | ||
41 | + if(response.payload.loginSuccess) | ||
42 | + props.history.push('/'); | ||
43 | + | ||
44 | + else | ||
45 | + alert('Error'); | ||
46 | + | ||
47 | + | ||
48 | + }) | ||
49 | + | ||
50 | + } | ||
51 | + return ( | ||
52 | + <div style={{ | ||
53 | + justifyContent:'center', alignItems: 'center', display:'flex', width:'100%', height:'50vh' | ||
54 | + }}> | ||
55 | + <form onSubmit={submitEvent}> | ||
56 | + <label>Email</label> | ||
57 | + <input type="email" value={Email} onChange={emailEvent} /> | ||
58 | + {/* input type="email"이라서 '이메일 주소에 '@'를 포함해주세요'라는 경고문 뜸. */} | ||
59 | + <label>Password</label> | ||
60 | + <input type="password" value={Password} onChange={passwordEvent} /> | ||
61 | + <br/> | ||
62 | + <button> | ||
63 | + Login | ||
64 | + </button> | ||
65 | + </form> | ||
66 | + </div> | ||
67 | + ) | ||
68 | +} | ||
69 | + | ||
70 | +export default withRouter(LoginPage) |
1 | +import React from 'react' | ||
2 | +import {useState} from 'react' | ||
3 | +import {useDispatch} from 'react-redux'; | ||
4 | +import {RegisterUser} from '../../../_actions/user_action' | ||
5 | +import { withRouter } from 'react-router-dom'; | ||
6 | + | ||
7 | +function RegisterPage(props) { | ||
8 | + | ||
9 | + // 이 로그인페이지 안에서 input에 타이핑을 함으로써 데이터를 변화시켜주므로 state 사용. | ||
10 | + // 1-1. state을 사용하기 위해 state 만들어줌. | ||
11 | + const [Name, setName] = useState(""); | ||
12 | + const [Email, setEmail] = useState(""); // 1-2. email을 위한 state | ||
13 | + const [Password, setPassword] = useState(""); // 1-2. password를 위한 state | ||
14 | + const [Password2, setPassword2] = useState(""); | ||
15 | + | ||
16 | + //1-3. 아래 input value에 넣어줌 | ||
17 | + | ||
18 | + // 2-1. 타이핑할 때 타이핑 하는 거 보이게 하도록 핸들러를 만들어줌 | ||
19 | + const emailEvent = (event) => { | ||
20 | + setEmail(event.currentTarget.value) | ||
21 | + } | ||
22 | + const passwordEvent = (event) => { | ||
23 | + setPassword(event.currentTarget.value) | ||
24 | + | ||
25 | + } | ||
26 | + const password2Event = (event) => { | ||
27 | + setPassword2(event.currentTarget.value) | ||
28 | + | ||
29 | + } | ||
30 | + const NameEvent = (event) => { | ||
31 | + setName(event.currentTarget.value) | ||
32 | + | ||
33 | + } | ||
34 | + | ||
35 | + const dispatch = useDispatch(); | ||
36 | + const submitEvent = (event) => { | ||
37 | + event.preventDefault(); // 이걸 하지 않으면 버튼을 누를 때마다 refresh돼서 데이터 처리를 할 수 없음 | ||
38 | + | ||
39 | + //console.log('Email', Email); // 잘 나오는지 확인 | ||
40 | + //console.log('Password', Password); // 잘 나오는지 확인 | ||
41 | + | ||
42 | + // 비밀번호 두개가 같아야 회원가입이 되도록 | ||
43 | + if(Password !== Password2) | ||
44 | + return alert('비밀번호가 일치하지 않습니다.') | ||
45 | + | ||
46 | + | ||
47 | + let regiInfo = { // 보내주기 위해 저장 | ||
48 | + name : Name, | ||
49 | + email: Email, | ||
50 | + password: Password | ||
51 | + } | ||
52 | + | ||
53 | + dispatch(RegisterUser(regiInfo)) // _actions폴더 user_action.js에 있음 | ||
54 | + .then(response => { | ||
55 | + if(response.payload.success) | ||
56 | + props.history.push('/login'); | ||
57 | + | ||
58 | + else | ||
59 | + alert('Fail to sign up'); | ||
60 | + }) | ||
61 | + | ||
62 | + } | ||
63 | + | ||
64 | + return ( | ||
65 | + <div style={{ | ||
66 | + justifyContent:'center', alignItems: 'center', display:'flex', width:'100%', height:'50vh' | ||
67 | + }}> | ||
68 | + <form onSubmit={submitEvent} style={{display: 'flex', flexDirection: 'column'}}> | ||
69 | + | ||
70 | + <label>Name</label> | ||
71 | + <input type="text" value={Name} onChange={NameEvent} /> | ||
72 | + | ||
73 | + <label>Email</label> | ||
74 | + <input type="email" value={Email} onChange={emailEvent} /> | ||
75 | + {/* input type="email"이라서 '이메일 주소에 '@'를 포함해주세요'라는 경고문 뜸. */} | ||
76 | + | ||
77 | + | ||
78 | + <label>Password</label> | ||
79 | + <input type="password" value={Password} onChange={passwordEvent} /> | ||
80 | + | ||
81 | + <label>Confirm Password</label> | ||
82 | + <input type="password" value={Password2} onChange={password2Event} /> | ||
83 | + | ||
84 | + <br/> | ||
85 | + <button> | ||
86 | + Sign In | ||
87 | + </button> | ||
88 | + </form> | ||
89 | + </div> | ||
90 | + ) | ||
91 | +} | ||
92 | + | ||
93 | +export default withRouter(RegisterPage) |
We-Shop/client/src/hoc/authentication.js
0 → 100644
1 | +// 사용자의 상태를 보고 | ||
2 | +// 해당 페이지에 들어갈 수 있게 할지 안할지 결정해 줌. hoc 이용. | ||
3 | +import axios from 'axios'; | ||
4 | +import React, {useEffect} from 'react'; | ||
5 | +//import {useEffect} from 'react'; | ||
6 | +import {useDispatch} from 'react-redux'; | ||
7 | +import {auth} from '../_actions/user_action' | ||
8 | + | ||
9 | + | ||
10 | +export default function (SpecificComponent, option, adminRoute = null){ | ||
11 | + // ㄴ option 종류 | ||
12 | + // - null 아무나 출입 가능한 페이지 | ||
13 | + // - true 로그인한 유저만 출입 가능 | ||
14 | + // - false 로그인한 유저 출입 불가능 | ||
15 | + | ||
16 | + function AuthenticationCheck(props) { | ||
17 | + //1. backend에 request를 날려서 사용자의 상태를 확인 | ||
18 | + const dispatch = useDispatch(); // 1-1. dispatch 사용 | ||
19 | + useEffect(() => { | ||
20 | + dispatch(auth()) // 페이지가 이동할 때마다 dispatch가 작동해서 backend에 request를 줌 | ||
21 | + .then(response => { // 받은 response | ||
22 | + console.log(response); | ||
23 | + | ||
24 | + | ||
25 | + // 로그인 안했다면 | ||
26 | + if(!response.payload.isAuth) { | ||
27 | + if(option) { // 만약 위 option이 true이면 (로그인한 유저만 출입 가능한 페이지로 가게 하려면) | ||
28 | + props.history.push('/login'); // 로그인 하게 함 | ||
29 | + } | ||
30 | + } | ||
31 | + | ||
32 | + // 로그인 했다면 | ||
33 | + else { | ||
34 | + if(adminRoute && !response.payload.isAdmin) { // admin만 갈 수 있는 페이지를 admin이 false 사람이 들어가려 한다면 | ||
35 | + props.history.push('/'); // 홈페이지로 돌아가게 함 | ||
36 | + } | ||
37 | + else { | ||
38 | + if(option===false) {// 로그인한 유저가 출입 불가능한 곳을 가려고 한다면 | ||
39 | + props.history.push('/'); // 홈페이지로 돌아가게 함 | ||
40 | + | ||
41 | + } | ||
42 | + } | ||
43 | + } | ||
44 | + }) | ||
45 | + },[]) | ||
46 | + | ||
47 | + return ( | ||
48 | + <SpecificComponent /> | ||
49 | + ) | ||
50 | + | ||
51 | + } | ||
52 | + | ||
53 | + return AuthenticationCheck | ||
54 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
We-Shop/client/src/index.js
0 → 100644
1 | +import React from 'react'; | ||
2 | +import ReactDOM from 'react-dom'; | ||
3 | +import './index.css'; | ||
4 | +import App from './App'; | ||
5 | +import reportWebVitals from './reportWebVitals'; | ||
6 | +import { Provider } from 'react-redux' // app에 redux를 연결시켜주기 위해 redux에서 제공하는 provider 사용 | ||
7 | +import { createStore } from 'redux'; // redux에서 createStore 가져옴. | ||
8 | +import { applyMiddleware } from 'redux'; // object만 받는 store가 promise나 functions도 받기 위해 middleware을 사용함 | ||
9 | +import promiseMiddleware from 'redux-promise'; | ||
10 | +import ReduxThunk from 'redux-thunk'; | ||
11 | +import Reducer from './_reducers'; | ||
12 | + | ||
13 | +import 'antd/dist/antd.css'; | ||
14 | + | ||
15 | + | ||
16 | +const createStoreWithMiddleware = applyMiddleware(promiseMiddleware, ReduxThunk)(createStore) | ||
17 | + | ||
18 | +ReactDOM.render( | ||
19 | + // App에 Redux를 연결 | ||
20 | + <Provider | ||
21 | + store={createStoreWithMiddleware(Reducer, | ||
22 | + window.__REDUX_DEVTOOLS_EXTENSION__ && | ||
23 | + window.__REDUX_DEVTOOLS_EXTENSION__() | ||
24 | + )} | ||
25 | + > | ||
26 | + <App /> | ||
27 | + </Provider> | ||
28 | + , document.getElementById('root') | ||
29 | +); | ||
30 | + | ||
31 | +// If you want to start measuring performance in your app, pass a function | ||
32 | +// to log resu lts (for example: reportWebVitals(console.log)) | ||
33 | +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals | ||
34 | +reportWebVitals(); |
boiler-plate/client/src/index.js
deleted
100644 → 0
1 | -import React from 'react'; | ||
2 | -import ReactDOM from 'react-dom'; | ||
3 | -import './index.css'; | ||
4 | -import App from './App'; | ||
5 | -import reportWebVitals from './reportWebVitals'; | ||
6 | - | ||
7 | -ReactDOM.render( | ||
8 | - <React.StrictMode> | ||
9 | - <App /> | ||
10 | - </React.StrictMode>, | ||
11 | - document.getElementById('root') | ||
12 | -); | ||
13 | - | ||
14 | -// If you want to start measuring performance in your app, pass a function | ||
15 | -// to log results (for example: reportWebVitals(console.log)) | ||
16 | -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals | ||
17 | -reportWebVitals(); |
-
Please register or login to post a comment