diff --git a/.eslintrc.js b/.eslintrc.js
index 7a4334d..5dc0fd3 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -53,9 +53,8 @@ module.exports = {
},
"settings": {
"import/resolver": {
- "webpack": {
- "env": {"lighttpd": true},
- "config": path.resolve(__dirname, "webpack.config.js")
+ "node": {
+ "paths": ["src"]
}
}
}
diff --git a/babel.config.js b/babel.config.js
index 9bacb1c..569eecc 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -10,12 +10,5 @@ module.exports = {
plugins: [
"@babel/plugin-syntax-export-default-from",
"@babel/plugin-transform-runtime",
- ["module-resolver", {
- root: ["./src"],
- alias: {
- test: "./test",
- underscore: "lodash",
- },
- }],
],
};
diff --git a/package-lock.json b/package-lock.json
index b310eaf..224ab4f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1022,12 +1022,6 @@
"strip-ansi": "^5.0.0"
},
"dependencies": {
- "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==",
- "dev": true
- },
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -1468,13 +1462,10 @@
"dev": true
},
"ansi-escapes": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz",
- "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==",
- "dev": true,
- "requires": {
- "type-fest": "^0.5.2"
- }
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "dev": true
},
"ansi-html": {
"version": "0.0.7",
@@ -1873,19 +1864,6 @@
"@types/babel__traverse": "^7.0.6"
}
},
- "babel-plugin-module-resolver": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz",
- "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==",
- "dev": true,
- "requires": {
- "find-babel-config": "^1.1.0",
- "glob": "^7.1.2",
- "pkg-up": "^2.0.0",
- "reselect": "^3.0.1",
- "resolve": "^1.4.0"
- }
- },
"babel-plugin-react-transform": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-3.0.0.tgz",
@@ -1906,6 +1884,12 @@
"regenerator-runtime": "^0.10.5"
},
"dependencies": {
+ "core-js": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
+ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
+ "dev": true
+ },
"regenerator-runtime": {
"version": "0.10.5",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
@@ -1934,6 +1918,12 @@
"regenerator-runtime": "^0.11.0"
},
"dependencies": {
+ "core-js": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
+ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
+ "dev": true
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -2346,9 +2336,9 @@
"dev": true
},
"chokidar": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz",
- "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==",
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
"dev": true,
"requires": {
"anymatch": "^2.0.0",
@@ -2410,12 +2400,12 @@
}
},
"cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
- "restore-cursor": "^3.1.0"
+ "restore-cursor": "^2.0.0"
}
},
"cli-spinners": {
@@ -2459,18 +2449,6 @@
"wrap-ansi": "^5.1.0"
},
"dependencies": {
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "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=",
- "dev": true
- },
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@@ -2820,10 +2798,9 @@
}
},
"core-js": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
- "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
- "dev": true
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
},
"core-js-compat": {
"version": "3.2.1",
@@ -3234,15 +3211,15 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.237",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.237.tgz",
- "integrity": "sha512-SPAFjDr/7iiVK2kgTluwxela6eaWjjFkS9rO/iYpB/KGXgccUom5YC7OIf19c8m8GGptWxLU0Em8xM64A/N7Fg==",
+ "version": "1.3.241",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.241.tgz",
+ "integrity": "sha512-Gb9E6nWZlbgjDDNe5cAvMJixtn79krNJ70EDpq/M10lkGo7PGtBUe7Y0CYVHsBScRwi6ybCS+YetXAN9ysAHDg==",
"dev": true
},
"emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
"dev": true
},
"emojis-list": {
@@ -3621,6 +3598,12 @@
"locate-path": "^2.0.0"
}
},
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
"load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -3729,14 +3712,6 @@
"emoji-regex": "^7.0.2",
"has": "^1.0.3",
"jsx-ast-utils": "^2.2.1"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- }
}
},
"eslint-plugin-react": {
@@ -4010,6 +3985,12 @@
"ms": "2.0.0"
}
},
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
@@ -4189,13 +4170,6 @@
"promise": "^7.1.1",
"setimmediate": "^1.0.5",
"ua-parser-js": "^0.7.18"
- },
- "dependencies": {
- "core-js": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
- "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
- }
}
},
"figgy-pudding": {
@@ -4205,9 +4179,9 @@
"dev": true
},
"figures": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz",
- "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
@@ -4277,24 +4251,6 @@
}
}
},
- "find-babel-config": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz",
- "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==",
- "dev": true,
- "requires": {
- "json5": "^0.5.1",
- "path-exists": "^3.0.0"
- },
- "dependencies": {
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
- }
- }
- },
"find-cache-dir": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
@@ -5564,22 +5520,22 @@
"dev": true
},
"inquirer": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.1.tgz",
- "integrity": "sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
"dev": true,
"requires": {
- "ansi-escapes": "^4.2.1",
+ "ansi-escapes": "^3.2.0",
"chalk": "^2.4.2",
- "cli-cursor": "^3.1.0",
+ "cli-cursor": "^2.1.0",
"cli-width": "^2.0.0",
"external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.15",
- "mute-stream": "0.0.8",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
"run-async": "^2.2.0",
"rxjs": "^6.4.0",
- "string-width": "^4.1.0",
+ "string-width": "^2.1.0",
"strip-ansi": "^5.1.0",
"through": "^2.3.6"
},
@@ -5802,9 +5758,9 @@
"dev": true
},
"is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "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=",
"dev": true
},
"is-generator-fn": {
@@ -5977,10 +5933,9 @@
"dev": true
},
"isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"isexe": {
"version": "2.0.0",
@@ -6531,14 +6486,6 @@
"chalk": "^2.0.1",
"jest-util": "^24.9.0",
"string-length": "^2.0.0"
- },
- "dependencies": {
- "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==",
- "dev": true
- }
}
},
"jest-worker": {
@@ -7045,6 +6992,14 @@
"map-age-cleaner": "^0.1.1",
"mimic-fn": "^2.0.0",
"p-is-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ }
}
},
"memory-fs": {
@@ -7130,9 +7085,9 @@
}
},
"mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
"mini-create-react-context": {
@@ -7290,9 +7245,9 @@
"dev": true
},
"mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
"nan": {
@@ -7395,9 +7350,9 @@
}
},
"node-releases": {
- "version": "1.1.27",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.27.tgz",
- "integrity": "sha512-9iXUqHKSGo6ph/tdXVbHFbhRVQln4ZDTIBJCzsa90HimnBYc5jw8RWYt4wBYFHehGyC3koIz5O4mb2fHrbPOuA==",
+ "version": "1.1.28",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.28.tgz",
+ "integrity": "sha512-AQw4emh6iSXnCpDiFe0phYcThiccmkNWMZnFZ+lDJjAP8J0m2fVd59duvUUyuTirQOhIAajTFkzG6FHCLBO59g==",
"dev": true,
"requires": {
"semver": "^5.3.0"
@@ -7603,12 +7558,12 @@
}
},
"onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
- "mimic-fn": "^2.1.0"
+ "mimic-fn": "^1.0.0"
}
},
"open": {
@@ -7675,40 +7630,6 @@
"wcwidth": "^1.0.1"
},
"dependencies": {
- "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=",
- "dev": true,
- "requires": {
- "restore-cursor": "^2.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==",
- "dev": true
- },
- "onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "dev": true,
- "requires": {
- "mimic-fn": "^1.0.0"
- }
- },
- "restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "dev": true,
- "requires": {
- "onetime": "^2.0.0",
- "signal-exit": "^3.0.2"
- }
- },
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -7934,10 +7855,12 @@
"dev": true
},
"path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
- "dev": true
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
+ "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "requires": {
+ "isarray": "0.0.1"
+ }
},
"path-type": {
"version": "3.0.0",
@@ -8356,27 +8279,6 @@
"text-table": "0.2.0"
},
"dependencies": {
- "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==",
- "dev": true
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": 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=",
- "dev": true,
- "requires": {
- "restore-cursor": "^2.0.0"
- }
- },
"dir-glob": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
@@ -8387,15 +8289,6 @@
"path-type": "^3.0.0"
}
},
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
"globby": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz",
@@ -8438,70 +8331,12 @@
"through": "^2.3.6"
}
},
- "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=",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
- "dev": true
- },
- "onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "dev": true,
- "requires": {
- "mimic-fn": "^1.0.0"
- }
- },
- "restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "dev": true,
- "requires": {
- "onetime": "^2.0.0",
- "signal-exit": "^3.0.2"
- }
- },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
"dev": true
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "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=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -8509,14 +8344,6 @@
"dev": true,
"requires": {
"ansi-regex": "^4.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- }
}
}
}
@@ -8543,18 +8370,18 @@
"dev": true
},
"react-docgen-displayname-handler": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/react-docgen-displayname-handler/-/react-docgen-displayname-handler-2.1.1.tgz",
- "integrity": "sha512-Dmu+WnQt5TRDokaQ6uGvgcxrIh92c6uhuljsuueEphTcy/1nKh8/Ep6RUmpd77G1iN2rqg5+4ztGAT7LJjVdpg==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/react-docgen-displayname-handler/-/react-docgen-displayname-handler-2.1.3.tgz",
+ "integrity": "sha512-XfQCjDC/8hy0rDZ+VudYplQCdp/fx3z7Ffp22+6s2MSbZ2I/1yw4Tn+ntxkUgI0hrQzB6Nidg/wzLpA5Dbj+xg==",
"dev": true,
"requires": {
- "ast-types": "0.11.5"
+ "ast-types": "0.13.2"
},
"dependencies": {
"ast-types": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.5.tgz",
- "integrity": "sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw==",
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz",
+ "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==",
"dev": true
}
}
@@ -8626,21 +8453,6 @@
"react-is": "^16.6.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
- },
- "dependencies": {
- "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.7.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
- "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
- "requires": {
- "isarray": "0.0.1"
- }
- }
}
},
"react-simple-code-editor": {
@@ -8772,6 +8584,14 @@
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
}
},
"readdirp": {
@@ -8863,9 +8683,9 @@
}
},
"regexp-tree": {
- "version": "0.1.11",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz",
- "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg==",
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.12.tgz",
+ "integrity": "sha512-TsXZ8+cv2uxMEkLfgwO0E068gsNMLfuYwMMhiUxf0Kw2Vcgzq93vgl6wIlIYuPmfMqMjfQ9zAporiozqCnwLuQ==",
"dev": true
},
"regexpp": {
@@ -9075,12 +8895,6 @@
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
},
- "reselect": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz",
- "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=",
- "dev": true
- },
"resolve": {
"version": "1.12.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
@@ -9125,12 +8939,12 @@
"dev": true
},
"restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
- "onetime": "^5.1.0",
+ "onetime": "^2.0.0",
"signal-exit": "^3.0.2"
}
},
@@ -9255,6 +9069,17 @@
"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==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
@@ -9497,14 +9322,6 @@
"ansi-styles": "^3.2.0",
"astral-regex": "^1.0.0",
"is-fullwidth-code-point": "^2.0.0"
- },
- "dependencies": {
- "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=",
- "dev": true
- }
}
},
"snapdragon": {
@@ -9982,25 +9799,13 @@
}
},
"string-width": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz",
- "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^5.2.0"
- },
- "dependencies": {
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
}
},
"string_decoder": {
@@ -10115,18 +9920,6 @@
"string-width": "^3.0.0"
},
"dependencies": {
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "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=",
- "dev": true
- },
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@@ -10156,9 +9949,9 @@
"dev": true
},
"terser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.2.0.tgz",
- "integrity": "sha512-6lPt7lZdZ/13icQJp8XasFOwZjFJkxFFIb/N1fhYEQNoNI3Ilo3KABZ9OocZvZoB39r6SiIk/0+v/bt8nZoSeA==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.2.1.tgz",
+ "integrity": "sha512-cGbc5utAcX4a9+2GGVX4DsenG6v0x3glnDi5hx8816X1McEAwPlPgRtXPJzSBsbpILxZ8MQMT0KvArLuE0HP5A==",
"dev": true,
"requires": {
"commander": "^2.20.0",
@@ -10241,17 +10034,6 @@
"through2": "^2.0.0"
}
},
- "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==",
- "dev": true,
- "requires": {
- "ajv": "^6.1.0",
- "ajv-errors": "^1.0.0",
- "ajv-keywords": "^3.1.0"
- }
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -10516,12 +10298,6 @@
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
},
- "type-fest": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz",
- "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==",
- "dev": true
- },
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -10735,6 +10511,12 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
"integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
"dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
}
}
},
@@ -11048,10 +10830,13 @@
"dev": true
},
"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=",
- "dev": true
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
},
"ms": {
"version": "2.1.2",
@@ -11065,50 +10850,12 @@
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
"dev": true
},
- "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==",
- "dev": true,
- "requires": {
- "ajv": "^6.1.0",
- "ajv-errors": "^1.0.0",
- "ajv-keywords": "^3.1.0"
- }
- },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -11137,15 +10884,6 @@
"strip-ansi": "^3.0.1"
},
"dependencies": {
- "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=",
- "dev": true,
- "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",
@@ -11335,18 +11073,6 @@
"strip-ansi": "^5.0.0"
},
"dependencies": {
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "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=",
- "dev": true
- },
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@@ -11452,18 +11178,6 @@
"yargs-parser": "^13.1.1"
},
"dependencies": {
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "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=",
- "dev": true
- },
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
diff --git a/package.json b/package.json
index 9e6d177..7640775 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,6 @@
"babel-eslint": "^9.0.0",
"babel-jest": "^24.8.0",
"babel-loader": "^8.0.6",
- "babel-plugin-module-resolver": "^3.2.0",
"babel-plugin-react-transform": "^3.0.0",
"babel-polyfill": "^6.26.0",
"eslint": "^5.16.0",
diff --git a/src/bootstrap/Alert.js b/src/bootstrap/Alert.js
index 968ad4c..eead1f4 100644
--- a/src/bootstrap/Alert.js
+++ b/src/bootstrap/Alert.js
@@ -5,27 +5,31 @@
* See /LICENSE for more information.
*/
-import React from 'react';
-import PropTypes from 'prop-types';
+import React from "react";
+import PropTypes from "prop-types";
Alert.propTypes = {
- /** Type of the alert it adds as `alert-${type}` class.*/
+ /** Type of the alert it adds as `alert-${type}` class. */
type: PropTypes.string.isRequired,
- /** Alert message.*/
+ /** Alert message. */
message: PropTypes.string,
- /** Alert content.*/
+ /** Alert content. */
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
- PropTypes.node
+ PropTypes.node,
]),
- /** onDismiss handler.*/
- onDismiss: PropTypes.func
+ /** onDismiss handler. */
+ onDismiss: PropTypes.func,
};
-export function Alert({type, message, onDismiss, children}) {
- return
- {onDismiss ? : false}
- {message}
- {children}
-
+export default function Alert({
+ type, message, onDismiss, children,
+}) {
+ return (
+
+ {onDismiss ? : false}
+ {message}
+ {children}
+
+ );
}
diff --git a/src/bootstrap/Button.js b/src/bootstrap/Button.js
index 5d7a021..7109286 100644
--- a/src/bootstrap/Button.js
+++ b/src/bootstrap/Button.js
@@ -5,13 +5,13 @@
* See /LICENSE for more information.
*/
-import React from 'react';
-import PropTypes from 'prop-types';
+import React from "react";
+import PropTypes from "prop-types";
const OFFSET = 8;
const SIZE = 3;
-const SIZE_CLASS = ' offset-lg-' + OFFSET + ' col-lg-' + SIZE;
-const SIZE_CLASS_SM = ' col-sm-12';
+const SIZE_CLASS = ` offset-lg-${OFFSET} col-lg-${SIZE}`;
+const SIZE_CLASS_SM = " col-sm-12";
Button.propTypes = {
/** Additional class name. */
@@ -26,18 +26,25 @@ Button.propTypes = {
PropTypes.element,
PropTypes.node,
PropTypes.arrayOf(PropTypes.node),
- ]).isRequired
+ ]).isRequired,
};
-export function Button({className, loading, forisFormSize, children, ...props}) {
- className = className ? 'btn ' + className : 'btn btn-primary ';
- if (forisFormSize)
- className += SIZE_CLASS + SIZE_CLASS_SM;
+export default function Button({
+ className, loading, forisFormSize, children, ...props
+}) {
+ className = className ? `btn ${className}` : "btn btn-primary ";
+ if (forisFormSize) className += SIZE_CLASS + SIZE_CLASS_SM;
- const span = loading ?
- : null;
+ const span = loading
+ ? : null;
- return ;
+ return (
+
+ );
}
diff --git a/src/bootstrap/Checkbox.js b/src/bootstrap/Checkbox.js
index 02f336c..0ce12e9 100644
--- a/src/bootstrap/Checkbox.js
+++ b/src/bootstrap/Checkbox.js
@@ -7,7 +7,7 @@
import React from "react";
import PropTypes from "prop-types";
-import { useUID } from "react-uid";
+import { useUID } from "react-uid/dist/es5/index";
import { formFieldsSize } from "./constants";
@@ -27,7 +27,7 @@ CheckBox.defaultProps = {
disabled: false,
};
-export function CheckBox({
+export default function CheckBox({
label, helpText, useDefaultSize, disabled, ...props
}) {
const uid = useUID();
diff --git a/src/bootstrap/DataTimeInput.js b/src/bootstrap/DataTimeInput.js
index 876bfde..8bfbf01 100644
--- a/src/bootstrap/DataTimeInput.js
+++ b/src/bootstrap/DataTimeInput.js
@@ -5,53 +5,59 @@
* See /LICENSE for more information.
*/
-import React from 'react';
-import PropTypes from 'prop-types';
-import Datetime from 'react-datetime/DateTime';
-import moment from 'moment/moment';
+import React from "react";
+import PropTypes from "prop-types";
+import Datetime from "react-datetime/DateTime";
+import moment from "moment/moment";
-import {Input} from './Input';
+import Input from "./Input";
DataTimeInput.propTypes = {
/** Field label. */
label: PropTypes.string.isRequired,
/** Error message. */
error: PropTypes.string,
- /** DataTime or Data or Time value. Can be `moment` or string.*/
+ /** DataTime or Data or Time value. Can be `moment` or string. */
value: PropTypes.oneOfType([PropTypes.objectOf(moment), PropTypes.string]),
/** Help text message. */
helpText: PropTypes.string,
/** Content. */
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
- PropTypes.node
+ PropTypes.node,
]),
isValidDate: PropTypes.bool,
onChange: PropTypes.func.isRequired,
dateFormat: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
- timeFormat: PropTypes.string
+ timeFormat: PropTypes.string,
};
-const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD';
-const DEFAULT_TIME_FORMAT = 'HH:mm:ss';
+const DEFAULT_DATE_FORMAT = "YYYY-MM-DD";
+const DEFAULT_TIME_FORMAT = "HH:mm:ss";
-export function DataTimeInput({value, onChange, isValidDate, dateFormat, timeFormat, children, ...props}) {
+export default function DataTimeInput({
+ value, onChange, isValidDate, dateFormat, timeFormat, children, ...props
+}) {
function renderInput(datetimeProps) {
- return
- {children}
-
+ return (
+
+ {children}
+
+ );
}
- return ;
+ return (
+
+ );
}
diff --git a/src/bootstrap/EmailInput.js b/src/bootstrap/EmailInput.js
index 523e88d..587fc0f 100644
--- a/src/bootstrap/EmailInput.js
+++ b/src/bootstrap/EmailInput.js
@@ -5,12 +5,13 @@
* See /LICENSE for more information.
*/
-import React from 'react';
+import React from "react";
-import {Input} from './Input';
-import PropTypes from 'prop-types';
+import PropTypes from "prop-types";
+import Input from "./Input";
+
+const EmailInput = ({ ...props }) => ;
-export const EmailInput = ({...props}) => ;
EmailInput.propTypes = {
/** Field label. */
@@ -22,3 +23,5 @@ EmailInput.propTypes = {
/** Email value. */
value: PropTypes.string,
};
+
+export default EmailInput;
diff --git a/src/bootstrap/Input.js b/src/bootstrap/Input.js
index 19e5d58..cbf5aaa 100644
--- a/src/bootstrap/Input.js
+++ b/src/bootstrap/Input.js
@@ -5,10 +5,10 @@
* See /LICENSE for more information.
*/
-import React from 'react';
-import {useUID} from 'react-uid';
-import {formFieldsSize} from './constants';
-import PropTypes from 'prop-types';
+import React from "react";
+import { useUID } from "react-uid/dist/es5/index";
+import PropTypes from "prop-types";
+import { formFieldsSize } from "./constants";
Input.propTypes = {
type: PropTypes.string.isRequired,
@@ -18,29 +18,33 @@ Input.propTypes = {
className: PropTypes.string,
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
- PropTypes.node
- ])
-}
+ PropTypes.node,
+ ]),
+};
/** Base bootstrap input component. */
-export function Input({type, label, helpText, error, className, children, ...props}) {
+export default function Input({
+ type, label, helpText, error, className, children, ...props
+}) {
const uid = useUID();
- const inputClassName = `form-control ${className ? className : ''} ${(error ? 'is-invalid' : '')}`.trim();
- return
-
-
-
-
+
+
+
+
- {children}
+ {...props}
+ />
+ {children}
+
+ {error ?
{error}
: null}
+ {helpText ?
{helpText} : null}
- {error ?
{error}
: null}
- {helpText ?
{helpText} : null}
-
;
+ );
}
diff --git a/src/bootstrap/Modal.js b/src/bootstrap/Modal.js
index 822c6f9..d4138da 100644
--- a/src/bootstrap/Modal.js
+++ b/src/bootstrap/Modal.js
@@ -5,10 +5,9 @@
* See /LICENSE for more information.
*/
-import React, {useEffect, useRef} from 'react';
-import PropTypes from 'prop-types';
-
-import {Portal} from 'utils/Portal';
+import React, { useEffect, useRef } from "react";
+import PropTypes from "prop-types";
+import Portal from "utils/Portal";
Modal.propTypes = {
/** Is modal shown value */
@@ -19,17 +18,16 @@ Modal.propTypes = {
/** Modal content use following: `ModalHeader`, `ModalBody`, `ModalFooter` */
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
- PropTypes.node
- ]).isRequired
+ PropTypes.node,
+ ]).isRequired,
};
-export function Modal({shown, setShown, children}) {
+export function Modal({ shown, setShown, children }) {
const dialogRef = useRef();
useEffect(() => {
function handleClickOutsideDialog(e) {
- if (!dialogRef.current.contains(e.target))
- setShown(false);
+ if (!dialogRef.current.contains(e.target)) setShown(false);
}
document.addEventListener("mousedown", handleClickOutsideDialog);
@@ -39,15 +37,17 @@ export function Modal({shown, setShown, children}) {
}, [setShown]);
- return
-
-
-
- {children}
+ return (
+
+
-
-
+
+ );
}
ModalHeader.propTypes = {
@@ -55,35 +55,39 @@ ModalHeader.propTypes = {
title: PropTypes.string.isRequired,
};
-export function ModalHeader({setShown, title}) {
- return
-
{title}
-
-
+export function ModalHeader({ setShown, title }) {
+ return (
+
+
{title}
+
+
+ );
}
ModalBody.propTypes = {
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
- PropTypes.node
- ]).isRequired
+ PropTypes.node,
+ ]).isRequired,
};
-export function ModalBody({children}) {
- return
{children}
+export function ModalBody({ children }) {
+ return
{children}
;
}
ModalFooter.propTypes = {
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
- PropTypes.node
- ]).isRequired
+ PropTypes.node,
+ ]).isRequired,
};
-export function ModalFooter({children}) {
- return
- {children}
-
+export function ModalFooter({ children }) {
+ return (
+
+ {children}
+
+ );
}
diff --git a/src/bootstrap/NumberInput.js b/src/bootstrap/NumberInput.js
index 1aa75d1..0b6d2f8 100644
--- a/src/bootstrap/NumberInput.js
+++ b/src/bootstrap/NumberInput.js
@@ -5,12 +5,12 @@
* See /LICENSE for more information.
*/
-import React from 'react';
+import React from "react";
-import {Input} from './Input';
-import PropTypes from 'prop-types';
+import PropTypes from "prop-types";
+import Input from "./Input";
-export const NumberInput = ({...props}) =>
;
+const NumberInput = ({ ...props }) =>
;
NumberInput.propTypes = {
/** Field label. */
@@ -25,3 +25,5 @@ NumberInput.propTypes = {
PropTypes.number,
]),
};
+
+export default NumberInput;
diff --git a/src/bootstrap/PasswordInput.js b/src/bootstrap/PasswordInput.js
index 02bda9f..a5104de 100644
--- a/src/bootstrap/PasswordInput.js
+++ b/src/bootstrap/PasswordInput.js
@@ -5,10 +5,10 @@
* See /LICENSE for more information.
*/
-import React, {useState} from 'react';
-import PropTypes from 'prop-types';
+import React, { useState } from "react";
+import PropTypes from "prop-types";
-import {Input} from './Input';
+import Input from "./Input";
PasswordInput.propTypes = {
/** Field label. */
@@ -23,22 +23,30 @@ PasswordInput.propTypes = {
withEye: PropTypes.bool,
};
-export function PasswordInput({withEye, ...props}) {
+export default function PasswordInput({ withEye, ...props }) {
const [isHidden, setHidden] = useState(true);
- return
- {withEye ?
-
-
-
- : null}
-
+ return (
+
+ {withEye
+ ? (
+
+
+
+ )
+ : null}
+
+ );
}
diff --git a/src/bootstrap/RadioSet.js b/src/bootstrap/RadioSet.js
index 52bea3a..3fec51c 100644
--- a/src/bootstrap/RadioSet.js
+++ b/src/bootstrap/RadioSet.js
@@ -5,76 +5,89 @@
* See /LICENSE for more information.
*/
-import React from 'react';
-import PropTypes from 'prop-types';
-import {useUID} from 'react-uid';
+import React from "react";
+import PropTypes from "prop-types";
+import { useUID } from "react-uid/dist/es5/index";
-import {formFieldsSize} from './constants';
+import { formFieldsSize } from "./constants";
RadioSet.propTypes = {
- /** Name attribute of the input HTML tag.*/
+ /** Name attribute of the input HTML tag. */
name: PropTypes.string.isRequired,
- /** RadioSet label .*/
+ /** RadioSet label . */
label: PropTypes.string,
- /** Choices .*/
+ /** Choices . */
choices: PropTypes.arrayOf(PropTypes.shape({
- /** Choice lable .*/
+ /** Choice lable . */
label: PropTypes.string.isRequired,
- /** Choice value .*/
+ /** Choice value . */
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
})).isRequired,
- /** Initial value .*/
+ /** Initial value . */
value: PropTypes.string,
- /** Help text message .*/
+ /** Help text message . */
helpText: PropTypes.string,
};
-export function RadioSet({name, label, choices, value, helpText, ...props}) {
+export default function RadioSet({
+ name, label, choices, value, helpText, ...props
+}) {
const uid = useUID();
- const radios = choices.map((choice, key) =>
-
{
+ const id = `${name}-${key}`;
+ return (
+
+ {...props}
+ />
+ );
+ });
+
+ return (
+
+ {label
+ ? (
+
+ )
+ : null}
+ {radios}
+ {helpText ? {helpText} : null}
+
);
-
- return
- {label ?
-
- : null}
- {radios}
- {helpText ? {helpText} : null}
-
;
}
Radio.propTypes = {
label: PropTypes.string.isRequired,
id: PropTypes.string.isRequired,
- helpText: PropTypes.string
+ helpText: PropTypes.string,
};
-function Radio({label, id, helpText, ...props}) {
- return <>
-
-
+
+
-
-
- {helpText ?
{helpText} : null}
- >
+ {...props}
+ />
+
+
+ {helpText ? {helpText} : null}
+ >
+ );
}
diff --git a/src/bootstrap/Select.js b/src/bootstrap/Select.js
index f71fa0e..c40637d 100644
--- a/src/bootstrap/Select.js
+++ b/src/bootstrap/Select.js
@@ -5,15 +5,15 @@
* See /LICENSE for more information.
*/
-import React from 'react';
-import PropTypes from 'prop-types';
-import {useUID} from 'react-uid';
+import React from "react";
+import PropTypes from "prop-types";
+import { useUID } from "react-uid/dist/es5/index";
Select.propTypes = {
/** Select field Label. */
label: PropTypes.string.isRequired,
- /** Choices if form of {value : "Label",...}.*/
+ /** Choices if form of {value : "Label",...}. */
choices: PropTypes.object.isRequired,
/** Current value. */
value: PropTypes.oneOfType([
@@ -24,22 +24,26 @@ Select.propTypes = {
helpText: PropTypes.string,
};
-export function Select({label, choices, helpText, ...props}) {
+export default function Select({
+ label, choices, helpText, ...props
+}) {
const uid = useUID();
const options = Object.keys(choices).map(
- key =>
+ (key) => ,
);
- return
-
-
- {helpText ? {helpText} : null}
-
;
+ return (
+
+
+
+ {helpText ? {helpText} : null}
+
+ );
}
diff --git a/src/bootstrap/TextInput.js b/src/bootstrap/TextInput.js
index 52e063a..4ef0a6b 100644
--- a/src/bootstrap/TextInput.js
+++ b/src/bootstrap/TextInput.js
@@ -5,13 +5,13 @@
* See /LICENSE for more information.
*/
-import React from 'react';
-import PropTypes from 'prop-types';
+import React from "react";
+import PropTypes from "prop-types";
-import {Input} from './Input';
+import Input from "./Input";
-export const TextInput = ({...props}) => ;
+const TextInput = ({ ...props }) => ;
TextInput.propTypes = {
@@ -22,3 +22,5 @@ TextInput.propTypes = {
/** Help text message. */
helpText: PropTypes.string,
};
+
+export default TextInput;
diff --git a/src/bootstrap/__tests__/Button.test.js b/src/bootstrap/__tests__/Button.test.js
index e42ddc9..08684fd 100644
--- a/src/bootstrap/__tests__/Button.test.js
+++ b/src/bootstrap/__tests__/Button.test.js
@@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
-import {Button} from '../Button'
+import Button from '../Button'
describe('', () => {
it('Render button correctly', () => {
diff --git a/src/bootstrap/__tests__/Checkbox.test.js b/src/bootstrap/__tests__/Checkbox.test.js
index 9a82ecd..60d5803 100644
--- a/src/bootstrap/__tests__/Checkbox.test.js
+++ b/src/bootstrap/__tests__/Checkbox.test.js
@@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
-import {CheckBox} from '../Checkbox'
+import CheckBox from '../Checkbox'
describe('', () => {
it('Render checkbox', () => {
diff --git a/src/bootstrap/__tests__/NumberInput.test.js b/src/bootstrap/__tests__/NumberInput.test.js
index daba60c..011f230 100644
--- a/src/bootstrap/__tests__/NumberInput.test.js
+++ b/src/bootstrap/__tests__/NumberInput.test.js
@@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
-import {NumberInput} from '../NumberInput';
+import NumberInput from '../NumberInput';
describe('', () => {
diff --git a/src/bootstrap/__tests__/PasswordInput.test.js b/src/bootstrap/__tests__/PasswordInput.test.js
index 6b92f07..74beddf 100644
--- a/src/bootstrap/__tests__/PasswordInput.test.js
+++ b/src/bootstrap/__tests__/PasswordInput.test.js
@@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
-import {PasswordInput} from '../PasswordInput';
+import PasswordInput from '../PasswordInput';
describe('', () => {
it('Render password input', () => {
diff --git a/src/bootstrap/__tests__/RadioSet.test.js b/src/bootstrap/__tests__/RadioSet.test.js
index 2369bc9..39b91a9 100644
--- a/src/bootstrap/__tests__/RadioSet.test.js
+++ b/src/bootstrap/__tests__/RadioSet.test.js
@@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
-import {RadioSet} from '../RadioSet';
+import RadioSet from '../RadioSet';
const TEST_CHOICES = [
{label: 'label', value: 'value'},
diff --git a/src/bootstrap/__tests__/Select.test.js b/src/bootstrap/__tests__/Select.test.js
index 0e94c88..c309172 100644
--- a/src/bootstrap/__tests__/Select.test.js
+++ b/src/bootstrap/__tests__/Select.test.js
@@ -9,7 +9,7 @@ import React from 'react';
import {fireEvent, getByDisplayValue, getByText, render} from 'customTestRender';
-import {Select} from '../Select';
+import Select from '../Select';
const TEST_CHOICES = {
'1': 'one',
diff --git a/src/bootstrap/__tests__/TextInput.test.js b/src/bootstrap/__tests__/TextInput.test.js
index 9c64ded..7679697 100644
--- a/src/bootstrap/__tests__/TextInput.test.js
+++ b/src/bootstrap/__tests__/TextInput.test.js
@@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
-import {TextInput} from '../TextInput';
+import TextInput from '../TextInput';
describe('', () => {
it('Render text input', () => {
diff --git a/src/bootstrap/__tests__/__snapshots__/Button.test.js.snap b/src/bootstrap/__tests__/__snapshots__/Button.test.js.snap
index 6a56f33..1cf1143 100644
--- a/src/bootstrap/__tests__/__snapshots__/Button.test.js.snap
+++ b/src/bootstrap/__tests__/__snapshots__/Button.test.js.snap
@@ -3,6 +3,7 @@
exports[` Render button correctly 1`] = `