From 74ab97870a9792ae5a4ba4dd864d15230ef1f2a6 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Mon, 22 Mar 2021 12:54:50 +0100 Subject: [PATCH] create sample view --- .gitignore | 2 + package.json | 3 + src/App.css | 43 ++----- src/App.js | 19 +-- src/app/sampleData.js | 16 +++ src/app/userConfig.js | 7 ++ src/common/components/countdown/Countdown.jsx | 5 + .../components/countdown/Countdown.module.css | 9 ++ .../myProgressBar/MyProgressBar.jsx | 18 +++ .../myProgressBar/MyProgressBar.module.css | 20 +++ .../components/smallTimer/SmallTimer.jsx | 10 ++ .../smallTimer/SmallTimer.module.css | 25 ++++ src/features/viewers/DefaultViewer.jsx | 36 ++++++ src/features/viewers/viewers.css | 41 ++++++ yarn.lock | 118 ++++++++++++++++-- 15 files changed, 310 insertions(+), 62 deletions(-) create mode 100644 src/app/sampleData.js create mode 100644 src/app/userConfig.js create mode 100644 src/common/components/countdown/Countdown.jsx create mode 100644 src/common/components/countdown/Countdown.module.css create mode 100644 src/common/components/myProgressBar/MyProgressBar.jsx create mode 100644 src/common/components/myProgressBar/MyProgressBar.module.css create mode 100644 src/common/components/smallTimer/SmallTimer.jsx create mode 100644 src/common/components/smallTimer/SmallTimer.module.css create mode 100644 src/features/viewers/DefaultViewer.jsx create mode 100644 src/features/viewers/viewers.css diff --git a/.gitignore b/.gitignore index 4d29575de..30767643e 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +ontime.code-workspace +TODO.md diff --git a/package.json b/package.json index 838b7b5c2..4add7a800 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,11 @@ "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", + "date-fns": "^2.19.0", "react": "^17.0.1", + "react-bulma-components": "^3.4.0", "react-dom": "^17.0.1", + "react-router": "^5.2.0", "react-scripts": "4.0.3", "web-vitals": "^1.0.1" }, diff --git a/src/App.css b/src/App.css index 74b5e0534..16f4b4393 100644 --- a/src/App.css +++ b/src/App.css @@ -1,38 +1,9 @@ +* { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + .App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } + background-image: linear-gradient(rgb(20, 20, 20) 1.7%, rgb(48, 48, 48) 97%); + height: 100vh; } diff --git a/src/App.js b/src/App.js index 378457572..e1946349d 100644 --- a/src/App.js +++ b/src/App.js @@ -1,23 +1,10 @@ -import logo from './logo.svg'; import './App.css'; +import DefaultViewer from './features/viewers/DefaultViewer'; function App() { return ( -
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
+
+
); } diff --git a/src/app/sampleData.js b/src/app/sampleData.js new file mode 100644 index 000000000..427fc2ddc --- /dev/null +++ b/src/app/sampleData.js @@ -0,0 +1,16 @@ +const dummy = new Date(); + +export const sampleData = { + id: '1', + title: 'Is the internet a fad?', + subtitle: 'Carlos Valente', + timeStart: '10:00', + timeEnd: '11:30', + clockStarted: dummy, + timerDuration: 10, + message: { + text: 'Hurry Up!', + color: '#F00', + active: false, + }, +}; diff --git a/src/app/userConfig.js b/src/app/userConfig.js new file mode 100644 index 000000000..ed0daa965 --- /dev/null +++ b/src/app/userConfig.js @@ -0,0 +1,7 @@ +export const userConfig = { + timerColorOnPause: '#555', + timerColorOnRunning: '#FFF', + timerColorOnMessage: '#CCC', + timerColorOnTimeOver: '#F00', + overTimeText: '', +} \ No newline at end of file diff --git a/src/common/components/countdown/Countdown.jsx b/src/common/components/countdown/Countdown.jsx new file mode 100644 index 000000000..728210fad --- /dev/null +++ b/src/common/components/countdown/Countdown.jsx @@ -0,0 +1,5 @@ +import styles from './Countdown.module.css' + +export default function Countdown({ time }) { + return
{time}
; +} diff --git a/src/common/components/countdown/Countdown.module.css b/src/common/components/countdown/Countdown.module.css new file mode 100644 index 000000000..135e195d7 --- /dev/null +++ b/src/common/components/countdown/Countdown.module.css @@ -0,0 +1,9 @@ +@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;800&display=swap'); + +.countdownClock { + font-family: 'Open Sans', sans-serif; + font-size: 25vw; + text-align: center; + letter-spacing: 0.125em; + line-height: 0.9; +} \ No newline at end of file diff --git a/src/common/components/myProgressBar/MyProgressBar.jsx b/src/common/components/myProgressBar/MyProgressBar.jsx new file mode 100644 index 000000000..65857ee01 --- /dev/null +++ b/src/common/components/myProgressBar/MyProgressBar.jsx @@ -0,0 +1,18 @@ +import styles from './MyProgressBar.module.css'; + +const clamp = (num, a, b) => + Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b)); + +export default function MyProgressBar({ normalisedComplete }) { + const percentComplete = clamp(100 - normalisedComplete * 100, 0, 100); + const completeWidth = `${percentComplete}%`; + + return ( +
+
+
+ ); +} diff --git a/src/common/components/myProgressBar/MyProgressBar.module.css b/src/common/components/myProgressBar/MyProgressBar.module.css new file mode 100644 index 000000000..db4cd7479 --- /dev/null +++ b/src/common/components/myProgressBar/MyProgressBar.module.css @@ -0,0 +1,20 @@ +.progress { + padding: 6px; + background: rgba(0, 0, 0, 0.25); + border-radius: 6px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px rgba(255, 255, 255, 0.08); +} + +.progressBar { + height: 18px; + background: linear-gradient( + 90deg, + rgba(255, 0, 0, 1) 0%, + rgba(255, 149, 0, 1) 20%, + rgba(255, 244, 0, 0.8287037037037037) 50%, + rgba(0, 255, 156, 0.7083333333333333) 100% + ); + border-radius: 4px; + transition: 0.4s linear; + transition-property: width, background-color; +} diff --git a/src/common/components/smallTimer/SmallTimer.jsx b/src/common/components/smallTimer/SmallTimer.jsx new file mode 100644 index 000000000..4ba7a710c --- /dev/null +++ b/src/common/components/smallTimer/SmallTimer.jsx @@ -0,0 +1,10 @@ +import styles from './SmallTimer.module.css'; + +export default function SmallTimer({label, time}) { + return ( +
+
{label}
+
{time}
+
+ ); +} diff --git a/src/common/components/smallTimer/SmallTimer.module.css b/src/common/components/smallTimer/SmallTimer.module.css new file mode 100644 index 000000000..37e5abadb --- /dev/null +++ b/src/common/components/smallTimer/SmallTimer.module.css @@ -0,0 +1,25 @@ +@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;800&display=swap'); + +.smallTimer { + display: flex; + flex-direction: column; +} + +.label, +.timer { + font-size: 1vw; + text-align: center; +} + +.label { + font-size: 1.5vw; + color: #888; + margin-bottom: 0; +} + +.timer { + font-family: 'Open Sans', sans-serif; + + font-size: 4vw; + letter-spacing: 0.125em; +} diff --git a/src/features/viewers/DefaultViewer.jsx b/src/features/viewers/DefaultViewer.jsx new file mode 100644 index 000000000..867891f56 --- /dev/null +++ b/src/features/viewers/DefaultViewer.jsx @@ -0,0 +1,36 @@ +import 'bulma/css/bulma.css'; +import { addMinutes, format } from 'date-fns'; +import { useEffect, useState } from 'react'; +import { Container, Progress } from 'react-bulma-components/dist'; +import { sampleData } from '../../app/sampleData'; +import Countdown from '../../common/components/countdown/Countdown'; +import MyProgressBar from '../../common/components/myProgressBar/MyProgressBar'; +import SmallTimer from '../../common/components/smallTimer/SmallTimer'; +import './viewers.css'; + +export default function DefaultViewer() { + const [data, setData] = useState(sampleData); + const [timer, setTimer] = useState(sampleData.timerDuration); + const [elapsed, setElapsed] = useState(0); + + const timeNow = new Date(); + + return ( + +
{data.title}
+
{data.subtitle}
+ + {!data.message.active && } +
+ {data.message.text} +
+
+ + + +
+
+ ); +} diff --git a/src/features/viewers/viewers.css b/src/features/viewers/viewers.css new file mode 100644 index 000000000..b2f5c1bb2 --- /dev/null +++ b/src/features/viewers/viewers.css @@ -0,0 +1,41 @@ +@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;800&display=swap'); + +.presenter { + font-size: 24px; + height: 100%; + color: #ffffff; + display: flex; + flex-direction: column; + border: red 1px solid; +} + +.presentationTitle { + font-size: 5vw; + text-align: left; +} + +.presentationSub { + font-size: 3vw; + text-align: left; +} + +.userMessage { + font-size: 10em; + text-align: center; +} + +.hidden { + display: none; +} + +.extra { + width: 100%; + position: absolute; + bottom: 3vh; + left: 0; + + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-around; +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index abe4bad85..649e2aae3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1091,6 +1091,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" + integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": version "7.12.18" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" @@ -1098,13 +1105,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" @@ -2941,6 +2941,11 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +bulma@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.8.2.tgz#5d928f16ed4a84549c2873f95c92c38c69c631a7" + integrity sha512-vMM/ijYSxX+Sm+nD7Lmc1UgWDy2JcL2nTKqwgEqXuOMU+IGALbXd5MLt/BcjBAPLIx36TtzhzBcSnOP974gcqA== + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -3206,6 +3211,11 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +classnames@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + clean-css@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" @@ -3845,6 +3855,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +date-fns@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.19.0.tgz#65193348635a28d5d916c43ec7ce6fbd145059e1" + integrity sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -5386,6 +5401,18 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -5395,6 +5422,13 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + hoopy@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -6065,6 +6099,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6911,7 +6950,7 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7117,6 +7156,14 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + mini-css-extract-plugin@0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" @@ -7876,6 +7923,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -8731,7 +8785,7 @@ prompts@2.4.0, prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -8907,6 +8961,14 @@ react-app-polyfill@^2.0.0: regenerator-runtime "^0.13.7" whatwg-fetch "^3.4.1" +react-bulma-components@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/react-bulma-components/-/react-bulma-components-3.4.0.tgz#6a6e4ddbb2564aa8fb59d2b805137238b94d428c" + integrity sha512-d8FqFHt6zauD+xKuNwhNaTj4BbPQugREGUrZCAyUpt3431ayCprFaV7Ni3OXo2U158SmJKcBd+ND8JoDJZX8AA== + dependencies: + bulma "0.8.2" + classnames "2.2.6" + react-dev-utils@^11.0.3: version "11.0.4" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" @@ -8951,7 +9013,7 @@ react-error-overlay@^6.0.9: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== -react-is@^16.8.1: +react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -8966,6 +9028,22 @@ react-refresh@^0.8.3: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== +react-router@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + react-scripts@4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.3.tgz#b1cafed7c3fa603e7628ba0f187787964cb5d345" @@ -9330,6 +9408,11 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + resolve-url-loader@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" @@ -10425,6 +10508,16 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-invariant@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -10842,6 +10935,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"