aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package.json5
-rw-r--r--public/index.html1
-rw-r--r--public/light.min.css2
-rw-r--r--src/App.js173
-rw-r--r--src/components/Card.js225
-rw-r--r--src/components/Settings.js77
-rw-r--r--src/components/WifiCard.js148
-rw-r--r--src/components/style.css46
-rw-r--r--src/i18n.js33
-rw-r--r--src/style.css7
-rw-r--r--yarn.lock280
11 files changed, 669 insertions, 328 deletions
diff --git a/package.json b/package.json
index 9cec5bc..682d3bf 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,7 @@
6 "@testing-library/jest-dom": "^5.14.1", 6 "@testing-library/jest-dom": "^5.14.1",
7 "@testing-library/react": "^12.0.0", 7 "@testing-library/react": "^12.0.0",
8 "@testing-library/user-event": "^13.2.1", 8 "@testing-library/user-event": "^13.2.1",
9 "evergreen-ui": "^6.3.0",
9 "i18next": "^20.3.5", 10 "i18next": "^20.3.5",
10 "i18next-browser-languagedetector": "^6.1.2", 11 "i18next-browser-languagedetector": "^6.1.2",
11 "qrcode.react": "^1.0.1", 12 "qrcode.react": "^1.0.1",
@@ -15,8 +16,8 @@
15 "react-scripts": "^4.0.3" 16 "react-scripts": "^4.0.3"
16 }, 17 },
17 "devDependencies": { 18 "devDependencies": {
18 "prettier": "2.3.2", 19 "husky": "^7.0.1",
19 "husky": "^7.0.1" 20 "prettier": "2.3.2"
20 }, 21 },
21 "scripts": { 22 "scripts": {
22 "start": "react-scripts start", 23 "start": "react-scripts start",
diff --git a/public/index.html b/public/index.html
index 4882353..4b04eb7 100644
--- a/public/index.html
+++ b/public/index.html
@@ -9,7 +9,6 @@
9 content="Print a simple card with your WiFi login details. Tape it to the fridge, keep it in your wallet, etc." 9 content="Print a simple card with your WiFi login details. Tape it to the fridge, keep it in your wallet, etc."
10 /> 10 />
11 <link rel="icon" href="./images/wifi.ico" /> 11 <link rel="icon" href="./images/wifi.ico" />
12 <link rel="stylesheet" href="./light.min.css" />
13 <!-- 12 <!--
14 manifest.json provides metadata used when your web app is installed on a 13 manifest.json provides metadata used when your web app is installed on a
15 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ 14 user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
diff --git a/public/light.min.css b/public/light.min.css
deleted file mode 100644
index 8ce73eb..0000000
--- a/public/light.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
1@charset "UTF-8";body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.4;max-width:800px;margin:20px auto;padding:0 10px;color:#363636;background:#fff;text-rendering:optimizeLegibility}button,input,textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s ease}h1{font-size:2.2em;margin-top:0}h1,h2,h3,h4,h5,h6{margin-bottom:12px}h1,h2,h3,h4,h5,h6,strong{color:#000}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:600}blockquote{border-left:4px solid rgba(0,150,191,.67);margin:1.5em 0;padding:.5em 1em;font-style:italic}blockquote>footer{margin-top:10px;font-style:normal}address,blockquote cite{font-style:normal}a[href^=mailto]:before{content:"📧 "}a[href^=tel]:before{content:"📞 "}a[href^=sms]:before{content:"💬 "}button,input[type=button],input[type=checkbox],input[type=submit]{cursor:pointer}input:not([type=checkbox]):not([type=radio]),select{display:block}button,input,select,textarea{color:#000;background-color:#efefef;font-family:inherit;font-size:inherit;margin-right:6px;margin-bottom:6px;padding:10px;border:none;border-radius:6px;outline:none}button,input:not([type=checkbox]):not([type=radio]),select,textarea{-webkit-appearance:none}textarea{margin-right:0;width:100%;box-sizing:border-box;resize:vertical}button,input[type=button],input[type=submit]{padding-right:30px;padding-left:30px}button:hover,input[type=button]:hover,input[type=submit]:hover{background:#ddd}button:focus,input:focus,select:focus,textarea:focus{box-shadow:0 0 0 2px rgba(0,150,191,.67)}button:active,input[type=button]:active,input[type=checkbox]:active,input[type=radio]:active,input[type=submit]:active{transform:translateY(2px)}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.5}::-webkit-input-placeholder{color:#949494}:-ms-input-placeholder{color:#949494}::-ms-input-placeholder{color:#949494}::placeholder{color:#949494}a{text-decoration:none;color:#0076d1}a:hover{text-decoration:underline}code,kbd{background:#efefef;color:#000;padding:5px;border-radius:6px}pre>code{padding:10px;display:block;overflow-x:auto}img{max-width:100%}hr{border:none;border-top:1px solid #dbdbdb}table{border-collapse:collapse;margin-bottom:10px;width:100%}td,th{padding:6px;text-align:left}th{border-bottom:1px solid #dbdbdb}tbody tr:nth-child(2n){background-color:#efefef}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#efefef;border-radius:6px}::-webkit-scrollbar-thumb{background:#d5d5d5;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#c4c4c4}
2/*# sourceMappingURL=light.min.css.map */
diff --git a/src/App.js b/src/App.js
index 87b88da..3d93bd6 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,7 +1,9 @@
1import React from 'react'; 1import { Button, Heading, Link, Pane, Paragraph } from 'evergreen-ui';
2import React, { useEffect, useRef, useState } from 'react';
2import { useTranslation } from 'react-i18next'; 3import { useTranslation } from 'react-i18next';
3import logo from '../src/images/wifi.png'; 4import logo from '../src/images/wifi.png';
4import { Card } from './components/Card'; 5import { Settings } from './components/Settings';
6import { WifiCard } from './components/WifiCard';
5import './style.css'; 7import './style.css';
6 8
7/* List of languages that require RTL direction (alphabetic order). */ 9/* List of languages that require RTL direction (alphabetic order). */
@@ -10,65 +12,138 @@ const RTL_LANGUAGES = ['ar', 'fa-IR'];
10function App() { 12function App() {
11 const html = document.querySelector('html'); 13 const html = document.querySelector('html');
12 const { t, i18n } = useTranslation(); 14 const { t, i18n } = useTranslation();
15 const firstLoad = useRef(true);
16 const [settings, setSettings] = useState({
17 // Network SSID name
18 ssid: '',
19 // Network password
20 password: '',
21 // Settings: Network encryption mode
22 encryptionMode: 'WPA',
23 // Settings: Hide password on the printed card
24 hidePassword: false,
25 // Settings: Portrait orientation
26 portrait: false,
27 });
28 const [errors, setErrors] = useState({
29 ssidError: '',
30 passwordError: '',
31 });
13 32
14 const changeLanguage = (language) => { 33 const onChangeLanguage = (language) => {
15 html.style.direction = RTL_LANGUAGES.includes(language) ? 'rtl' : 'ltr'; 34 html.style.direction = RTL_LANGUAGES.includes(language) ? 'rtl' : 'ltr';
16 i18n.changeLanguage(language); 35 i18n.changeLanguage(language);
17 }; 36 };
18 37
19 /* handle the edge case of the initial render requiring RTL direction */ 38 const onPrint = () => {
20 if (RTL_LANGUAGES.includes(i18n.language)) { 39 if (!settings.ssid.length) {
21 html.style.direction = 'rtl'; 40 setErrors({
22 } 41 ...errors,
42 ssidError: t('wifi.alert.name'),
43 });
44 return;
45 }
46
47 if (settings.ssid.length > 0) {
48 if (settings.password.length < 8 && settings.encryptionMode === 'WPA') {
49 setErrors({
50 ...errors,
51 passwordError: t('wifi.alert.password.length.8'),
52 });
53 } else if (
54 settings.password.length < 5 &&
55 settings.encryptionMode === 'WEP'
56 ) {
57 setErrors({
58 ...errors,
59 passwordError: t('wifi.alert.password.length.5'),
60 });
61 } else {
62 document.title = 'WiFi Card - ' + settings.ssid;
63 window.print();
64 }
65 }
66 };
67
68 const onSSIDChange = (ssid) => {
69 setErrors({ ...errors, ssidError: '' });
70 setSettings({ ...settings, ssid });
71 };
72 const onPasswordChange = (password) => {
73 setErrors({ ...errors, passwordError: '' });
74 setSettings({ ...settings, password });
75 };
76 const onEncryptionModeChange = (encryptionMode) => {
77 setErrors({ ...errors, passwordError: '' });
78 setSettings({ ...settings, encryptionMode });
79 };
80 const onOrientationChange = (portrait) => {
81 setSettings({ ...settings, portrait });
82 };
83 const onHidePasswordChange = (hidePassword) => {
84 setSettings({ ...settings, hidePassword });
85 };
86 const onFirstLoad = () => {
87 firstLoad.current = false;
88 };
89
90 useEffect(() => {
91 /* handle the edge case of the initial render requiring RTL direction */
92 if (RTL_LANGUAGES.includes(i18n.language)) {
93 html.style.direction = 'rtl';
94 }
95 });
23 96
24 return ( 97 return (
25 <div className="App"> 98 <Pane>
26 <h1> 99 <Pane display="flex">
27 <img alt="icon" src={logo} width="32" height="32" /> 100 <img alt="icon" src={logo} width="32" height="32" />
28 &nbsp; {t('title')} 101 <Heading size={900} paddingLeft={16}>
29 </h1> 102 {t('title')}
103 </Heading>
104 </Pane>
105
106 <Pane>
107 <Paragraph marginTop={12}>{t('desc.use')}</Paragraph>
30 108
31 <div> 109 <Paragraph marginTop={12}>
32 <label>{t('select')}</label> 110 {t('desc.privacy')}{' '}
33 <select 111 <Link href="https://github.com/bndw/wifi-card">
34 value={i18n.language} 112 {t('desc.source')}
35 onChange={(e) => changeLanguage(e.target.value)} 113 </Link>
36 > 114 .
37 <option value="en-US">English</option> 115 </Paragraph>
38 <option value="ar">Arabic - العربية</option> 116 </Pane>
39 <option value="ca">Catalan - Català</option>
40 <option value="zh-HK">Chinese Hong Kong - 简体中文</option>
41 <option value="zh-CN">Chinese Simplified - 简体中文</option>
42 <option value="nl-NL">Dutch - Nederlands</option>
43 <option value="fr-FR">French - Français</option>
44 <option value="de-DE">German - Deutsch</option>
45 <option value="hi-IN">Hindi - हिन्दी</option>
46 <option value="id-ID">Indonesian</option>
47 <option value="it-IT">Italian</option>
48 <option value="ja">Japanese - 日本語</option>
49 <option value="ko">Korean - 한국어</option>
50 <option value="no-NB">Norwegian - Norsk</option>
51 <option value="oc">Occitan</option>
52 <option value="fa-IR">Persian Iran - فارسی</option>
53 <option value="pl-PL">Polish - Polski</option>
54 <option value="pt">Portuguese - Português</option>
55 <option value="pt-BR">Portuguese - Português brasileiro</option>
56 <option value="ru-RU">Russian - Русский</option>
57 <option value="es">Spanish - Español</option>
58 <option value="tr-TR">Turkish - Türkçe</option>
59 <option value="uk-UA">Ukrainian - Українська</option>
60 </select>
61 </div>
62 117
63 <p className="tag">{t('desc.use')}</p> 118 <WifiCard
119 direction={RTL_LANGUAGES.includes(i18n.language) ? 'rtl' : 'ltr'}
120 settings={settings}
121 ssidError={errors.ssidError}
122 passwordError={errors.passwordError}
123 onSSIDChange={onSSIDChange}
124 onPasswordChange={onPasswordChange}
125 />
64 126
65 <p className="tag"> 127 <Settings
66 {t('desc.privacy')}{' '} 128 settings={settings}
67 <a href="https://github.com/bndw/wifi-card">{t('desc.source')}</a>. 129 firstLoad={firstLoad}
68 </p> 130 onFirstLoad={onFirstLoad}
131 onLanguageChange={onChangeLanguage}
132 onEncryptionModeChange={onEncryptionModeChange}
133 onOrientationChange={onOrientationChange}
134 onHidePasswordChange={onHidePasswordChange}
135 />
69 136
70 <Card direction={RTL_LANGUAGES.includes(i18n.language) ? 'rtl' : 'ltr'} /> 137 <Button
71 </div> 138 id="print"
139 appearance="primary"
140 height={40}
141 marginRight={16}
142 onClick={onPrint}
143 >
144 {t('button.print')}
145 </Button>
146 </Pane>
72 ); 147 );
73} 148}
74 149
diff --git a/src/components/Card.js b/src/components/Card.js
deleted file mode 100644
index 601b760..0000000
--- a/src/components/Card.js
+++ /dev/null
@@ -1,225 +0,0 @@
1import QRCode from 'qrcode.react';
2import { useEffect, useRef, useState } from 'react';
3import { useTranslation } from 'react-i18next';
4import './style.css';
5
6export const Card = ({ direction = 'ltr' }) => {
7 const firstLoad = useRef(true);
8 const [qrvalue, setQrvalue] = useState('');
9 const [network, setNetwork] = useState({
10 ssid: '',
11 encryptionMode: 'WPA',
12 password: '',
13 hidePassword: false,
14 });
15 const [portrait, setPortrait] = useState(false);
16 const { t } = useTranslation();
17 const escape = (v) => {
18 const needsEscape = ['"', ';', ',', ':', '\\'];
19
20 let escaped = '';
21 for (const c of v) {
22 if (needsEscape.includes(c)) {
23 escaped += `\\${c}`;
24 } else {
25 escaped += c;
26 }
27 }
28 return escaped;
29 };
30
31 const onPrint = () => {
32 if (network.ssid.length > 0) {
33 if (network.password.length < 8 && network.encryptionMode === 'WPA') {
34 alert(t('wifi.alert.password.length.8'));
35 } else if (
36 network.password.length < 5 &&
37 network.encryptionMode === 'WEP'
38 ) {
39 alert(t('wifi.alert.password.length.5'));
40 } else {
41 document.title = 'WiFi Card - ' + network.ssid;
42 window.print();
43 }
44 } else {
45 alert(t('wifi.alert.name'));
46 }
47 };
48
49 const disableHidePassword = () => {
50 const isWEPWithPasswordLengthShorterThat5Characters = () => {
51 return network.encryptionMode === 'WEP' && network.password.length < 5
52 ? true
53 : false;
54 };
55
56 return network.encryptionMode === 'WPA' && network.password.length < 8
57 ? true
58 : isWEPWithPasswordLengthShorterThat5Characters();
59 };
60
61 useEffect(() => {
62 if (firstLoad.current && window.innerWidth < 500) {
63 firstLoad.current = false;
64 setPortrait(true);
65 }
66
67 const ssid = escape(network.ssid);
68 const password =
69 network.encryptionMode === 'nopass' ? '' : escape(network.password);
70 setQrvalue(`WIFI:T:${network.encryptionMode};S:${ssid};P:${password};;`);
71 }, [network]);
72
73 const setEncryptionMode = (e) =>
74 setNetwork({
75 ...network,
76 encryptionMode: e.target.value,
77 });
78
79 const checkDirectionAndSetPadding =
80 direction === 'ltr' ? { paddingRight: '1em' } : { paddingLeft: '1em' };
81
82 return (
83 <div>
84 <fieldset
85 id="print-area"
86 style={{ maxWidth: portrait ? '350px' : '100%' }}
87 >
88 <h1 style={{ textAlign: portrait ? 'center' : 'unset' }}>
89 {t('wifi.login')}
90 </h1>
91
92 <div
93 className="details"
94 style={{ flexDirection: portrait ? 'column' : 'row' }}
95 >
96 <QRCode
97 className="qrcode"
98 style={!portrait && checkDirectionAndSetPadding}
99 value={qrvalue}
100 size={175}
101 />
102
103 <div className="inputs">
104 <label>{t('wifi.name')}</label>
105 <textarea
106 id="ssid"
107 type="text"
108 maxLength="32"
109 placeholder={t('wifi.name.placeholder')}
110 autoComplete="off"
111 autoCorrect="off"
112 autoCapitalize="none"
113 spellCheck="false"
114 value={network.ssid}
115 onChange={(e) => setNetwork({ ...network, ssid: e.target.value })}
116 />
117 <label
118 className={`
119 ${network.hidePassword && 'no-print hidden'}
120 ${network.encryptionMode === 'nopass' && 'hidden'}
121 `}
122 >
123 {t('wifi.password')}
124 </label>
125 <textarea
126 id="password"
127 type="text"
128 className={`
129 ${network.hidePassword && 'no-print hidden'}
130 ${network.encryptionMode === 'nopass' && 'hidden'}
131 `}
132 style={{
133 height:
134 portrait && network.password.length > 40 ? '5em' : 'auto',
135 }}
136 maxLength="63"
137 placeholder={t('wifi.password.placeholder')}
138 autoComplete="off"
139 autoCorrect="off"
140 autoCapitalize="none"
141 spellCheck="false"
142 value={network.password}
143 onChange={(e) => {
144 setNetwork({ ...network, password: e.target.value });
145 }}
146 />
147
148 <div className="no-print">
149 <input
150 type="checkbox"
151 id="hide-password-checkbox"
152 checked={network.hidePassword}
153 disabled={disableHidePassword()}
154 className={network.encryptionMode === 'nopass' ? 'hidden' : ''}
155 onChange={() =>
156 setNetwork({
157 ...network,
158 hidePassword: !network.hidePassword,
159 })
160 }
161 />
162 <label
163 htmlFor="hide-password-checkbox"
164 className={network.encryptionMode === 'nopass' ? 'hidden' : ''}
165 >
166 {t('wifi.password.hide')}
167 </label>
168 </div>
169
170 <div className="no-print">
171 <label>
172 {t('wifi.password.encryption')}:{direction === 'rtl' ? ' ' : ''}
173 </label>
174 <span dir="ltr">
175 <input
176 type="radio"
177 name="encrypt-select"
178 id="encrypt-none"
179 value="nopass"
180 onChange={setEncryptionMode}
181 />
182 <label htmlFor="encrypt-none">
183 {t('wifi.password.encryption.none')}
184 </label>
185 <input
186 type="radio"
187 name="encrypt-select"
188 id="encrypt-wpa-wpa2-wpa3"
189 value="WPA"
190 onChange={setEncryptionMode}
191 defaultChecked
192 />
193 <label htmlFor="encrypt-wpa-wpa2-wpa3">WPA/WPA2/WPA3</label>
194 <input
195 type="radio"
196 name="encrypt-select"
197 id="encrypt-wep"
198 value="WEP"
199 onChange={setEncryptionMode}
200 />
201 <label htmlFor="encrypt-wep">WEP</label>
202 </span>
203 </div>
204 </div>
205 </div>
206 <hr />
207 <p>
208 <span role="img" aria-label="mobile-phone">
209 📸📱
210 </span>
211 {t('wifi.tip')}
212 </p>
213 </fieldset>
214
215 <div className="buttons">
216 <button id="rotate" onClick={() => setPortrait(!portrait)}>
217 {t('button.rotate')}
218 </button>
219 <button id="print" onClick={onPrint}>
220 {t('button.print')}
221 </button>
222 </div>
223 </div>
224 );
225};
diff --git a/src/components/Settings.js b/src/components/Settings.js
new file mode 100644
index 0000000..1c28dab
--- /dev/null
+++ b/src/components/Settings.js
@@ -0,0 +1,77 @@
1import { Checkbox, Pane, RadioGroup, SelectField } from 'evergreen-ui';
2import { useEffect, useState } from 'react';
3import { useTranslation } from 'react-i18next';
4import i18n from '../i18n';
5import './style.css';
6
7export const Settings = (props) => {
8 const { t } = useTranslation();
9 const [encryptionModes] = useState([
10 { label: 'None', value: '' },
11 { label: 'WPA/WPA2/WPA3', value: 'WPA' },
12 { label: 'WEP', value: 'WEP' },
13 ]);
14
15 useEffect(() => {
16 if (props.firstLoad.current && window.innerWidth < 500) {
17 props.onFirstLoad();
18 props.onOrientationChange(true);
19 }
20 });
21
22 return (
23 <Pane id="settings" maxWidth={props.settings.portrait ? '350px' : '100%'}>
24 <SelectField
25 width={300}
26 inputHeight={38}
27 label={t('select')}
28 selected={i18n.language}
29 onChange={(e) => props.onLanguageChange(e.target.value)}
30 >
31 <option value="en-US">English</option>
32 <option value="ar">Arabic - العربية</option>
33 <option value="ca">Catalan - Català</option>
34 <option value="zh-HK">Chinese Hong Kong - 简体中文</option>
35 <option value="zh-CN">Chinese Simplified - 简体中文</option>
36 <option value="nl-NL">Dutch - Nederlands</option>
37 <option value="fr-FR">French - Français</option>
38 <option value="de-DE">German - Deutsch</option>
39 <option value="hi-IN">Hindi - हिन्दी</option>
40 <option value="id-ID">Indonesian</option>
41 <option value="it-IT">Italian</option>
42 <option value="ja">Japanese - 日本語</option>
43 <option value="ko">Korean - 한국어</option>
44 <option value="no-NB">Norwegian - Norsk</option>
45 <option value="oc">Occitan</option>
46 <option value="fa-IR">Persian Iran - فارسی</option>
47 <option value="pl-PL">Polish - Polski</option>
48 <option value="pt">Portuguese - Português</option>
49 <option value="pt-BR">Portuguese - Português brasileiro</option>
50 <option value="ru-RU">Russian - Русский</option>
51 <option value="es">Spanish - Español</option>
52 <option value="tr-TR">Turkish - Türkçe</option>
53 <option value="uk-UA">Ukrainian - Українська</option>
54 </SelectField>
55
56 <Checkbox
57 label={t('button.rotate')}
58 checked={props.settings.portrait}
59 onChange={() => props.onOrientationChange(!props.settings.portrait)}
60 />
61 <Checkbox
62 label={t('wifi.password.hide')}
63 checked={props.settings.hidePassword}
64 onChange={() =>
65 props.onHidePasswordChange(!props.settings.hidePassword)
66 }
67 />
68 <RadioGroup
69 label={t('wifi.password.encryption')}
70 size={16}
71 value={props.settings.encryptionMode}
72 options={encryptionModes}
73 onChange={(e) => props.onEncryptionModeChange(e.target.value)}
74 />
75 </Pane>
76 );
77};
diff --git a/src/components/WifiCard.js b/src/components/WifiCard.js
new file mode 100644
index 0000000..645dfa1
--- /dev/null
+++ b/src/components/WifiCard.js
@@ -0,0 +1,148 @@
1import {
2 CameraIcon,
3 Card,
4 Heading,
5 MobilePhoneIcon,
6 Pane,
7 Paragraph,
8 Text,
9 TextareaField,
10} from 'evergreen-ui';
11import QRCode from 'qrcode.react';
12import { useEffect, useState } from 'react';
13import { useTranslation } from 'react-i18next';
14import logo from '../../src/images/wifi.png';
15import './style.css';
16
17export const WifiCard = (props) => {
18 const { t } = useTranslation();
19 const [qrvalue, setQrvalue] = useState('');
20
21 const escape = (v) => {
22 const needsEscape = ['"', ';', ',', ':', '\\'];
23
24 let escaped = '';
25 for (const c of v) {
26 if (needsEscape.includes(c)) {
27 escaped += `\\${c}`;
28 } else {
29 escaped += c;
30 }
31 }
32 return escaped;
33 };
34
35 useEffect(() => {
36 const ssid = escape(props.settings.ssid);
37 const password = !props.settings.encryptionMode
38 ? ''
39 : escape(props.settings.password);
40 setQrvalue(
41 `WIFI:T:${props.settings.encryptionMode};S:${ssid};P:${password};;`
42 );
43 }, [props.settings]);
44
45 const portraitWidth = () => {
46 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
47 return isMobile ? '100%' : '280px';
48 };
49
50 const passwordFieldLabel = () => {
51 const hiddenPassword =
52 props.settings.hidePassword || !props.settings.encryptionMode;
53 return hiddenPassword ? '' : t('wifi.password');
54 };
55
56 return (
57 <Pane>
58 <Card
59 id="print-area"
60 elevation={3}
61 style={{ maxWidth: props.settings.portrait ? portraitWidth() : '100%' }}
62 >
63 <Pane display="flex" paddingBottom={12}>
64 <img alt="icon" src={logo} width="24" height="24" />
65 <Heading
66 paddingLeft={10}
67 size={700}
68 textAlign={props.settings.portrait ? 'center' : 'unset'}
69 >
70 {t('wifi.login')}
71 </Heading>
72 </Pane>
73
74 <Pane
75 className="details"
76 style={{ flexDirection: props.settings.portrait ? 'column' : 'row' }}
77 >
78 <QRCode
79 className="qrcode"
80 style={
81 !props.settings.portrait
82 ? props.direction === 'ltr'
83 ? { paddingRight: '1em' }
84 : { paddingLeft: '1em' }
85 : {}
86 }
87 value={qrvalue}
88 size={150}
89 />
90
91 <Pane width={'100%'}>
92 <TextareaField
93 id="ssid"
94 type="text"
95 marginBottom={5}
96 autoComplete="off"
97 autoCorrect="off"
98 autoCapitalize="none"
99 spellCheck={false}
100 maxLength="32"
101 label={t('wifi.name')}
102 placeholder={t('wifi.name.placeholder')}
103 value={props.settings.ssid}
104 onChange={(e) => props.onSSIDChange(e.target.value)}
105 isInvalid={!!props.ssidError}
106 validationMessage={!!props.ssidError && props.ssidError}
107 />
108 <TextareaField
109 id="password"
110 type="text"
111 maxLength="63"
112 autoComplete="off"
113 autoCorrect="off"
114 autoCapitalize="none"
115 spellCheck={false}
116 className={`
117 ${
118 (props.settings.hidePassword ||
119 !props.settings.encryptionMode) &&
120 'hidden'
121 }
122 `}
123 height={
124 props.settings.portrait && props.settings.password.length > 40
125 ? '5em'
126 : 'auto'
127 }
128 label={passwordFieldLabel()}
129 placeholder={t('wifi.password.placeholder')}
130 value={props.settings.password}
131 onChange={(e) => props.onPasswordChange(e.target.value)}
132 isInvalid={!!props.passwordError}
133 validationMessage={!!props.passwordError && props.passwordError}
134 />
135 </Pane>
136 </Pane>
137 <hr />
138 <Paragraph>
139 <CameraIcon />
140 <MobilePhoneIcon />
141 <Text size={300} paddingLeft={8}>
142 {t('wifi.tip')}
143 </Text>
144 </Paragraph>
145 </Card>
146 </Pane>
147 );
148};
diff --git a/src/components/style.css b/src/components/style.css
index c9dbb54..fa931bb 100644
--- a/src/components/style.css
+++ b/src/components/style.css
@@ -2,8 +2,7 @@
2 2
3#print-area { 3#print-area {
4 border-color: #aaa; 4 border-color: #aaa;
5 border-style: dashed; 5 margin-bottom: 1em;
6 margin-bottom: 2em;
7 margin-top: 2em; 6 margin-top: 2em;
8 padding: 1em; 7 padding: 1em;
9} 8}
@@ -16,39 +15,39 @@
16.qrcode { 15.qrcode {
17 margin-bottom: 1em; 16 margin-bottom: 1em;
18 max-width: 175px; 17 max-width: 175px;
19 min-width: 175px;
20} 18}
21 19
22.hidden { 20.hidden {
23 display: none; 21 display: none;
24} 22}
25
26textarea { 23textarea {
27 background-color: #fff; 24 background-color: #fff;
28 border: solid 1px #ddd; 25 border: solid 1px #ddd;
29 font-family: 'Source Code Pro', serif; 26 font-family: 'Source Code Pro', serif !important;
30 font-size: 1.3em; 27 font-size: 1em !important;
31 font-weight: bold; 28 font-weight: bold !important;
32 height: 3em; 29 margin-bottom: 0;
30 height: 40px !important;
31 min-height: 0px !important;
33 overflow: hidden; 32 overflow: hidden;
34 resize: none; 33 resize: none;
35} 34}
35textarea#password {
36 height: 60px !important;
37}
38
39hr {
40 margin-top: 0;
41}
36 42
37button { 43button {
38 height: 50px; 44 height: 50px;
39 width: 180px; 45 width: 180px;
40} 46}
41 47
42button#print { 48#settings {
43 color: #fff; 49 margin-bottom: 1em;
44 background-color: #0074d9; 50 padding: 1em;
45 border-color: #0074d9;
46}
47
48button#rotate {
49 color: #fff;
50 background-color: #6c757d;
51 border-color: #6c757d;
52} 51}
53 52
54@media print { 53@media print {
@@ -59,19 +58,16 @@ button#rotate {
59 #print-area * { 58 #print-area * {
60 visibility: visible; 59 visibility: visible;
61 } 60 }
61 #print-area {
62 border-style: dashed;
63 box-shadow: none;
64 }
62 #print-area textarea { 65 #print-area textarea {
63 border: none; 66 border: none;
64 } 67 }
65 .no-print {
66 display: none;
67 }
68 #print-area { 68 #print-area {
69 position: absolute; 69 position: absolute;
70 left: 0; 70 left: 0;
71 top: 0; 71 top: 0;
72 } 72 }
73} 73}
74
75hr {
76 margin-top: 25px;
77}
diff --git a/src/i18n.js b/src/i18n.js
index 452bf23..891e291 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -16,16 +16,19 @@ const resources = {
16 'wifi.name.placeholder': 'WiFi Network name', 16 'wifi.name.placeholder': 'WiFi Network name',
17 'wifi.password': 'Password', 17 'wifi.password': 'Password',
18 'wifi.password.placeholder': 'Password', 18 'wifi.password.placeholder': 'Password',
19 'wifi.password.hide': 'Hide password field before printing', 19 'wifi.password.hide': 'Hide password',
20 'wifi.password.encryption': 'Encryption', 20 'wifi.password.encryption': 'Encryption',
21 'wifi.password.encryption.none': 'None', 21 'wifi.password.encryption.none': 'None',
22 'wifi.tip': 22 'wifi.tip':
23 "Point your phone's camera at the QR Code to connect automatically", 23 "Point your phone's camera at the QR Code to connect automatically",
24 'wifi.alert.name': 'Network name cannot be empty', 24 'wifi.alert.name': 'Network name cannot be empty',
25 'wifi.alert.password.length.5': 'Password must be at least 5 characters', 25 'wifi.alert.password.length.5':
26 'wifi.alert.password.length.8': 'Password must be at least 8 characters', 26 'Password must be at least 5 characters, or change the encryption to "None"',
27 'wifi.alert.password.length.8':
28 'Password must be at least 8 characters, or change the encryption to "None"',
27 'button.rotate': 'Rotate', 29 'button.rotate': 'Rotate',
28 'button.print': 'Print', 30 'button.print': 'Print',
31 'button.settings': 'Settings',
29 select: 'Select Language', 32 select: 'Select Language',
30 }, 33 },
31 }, 34 },
@@ -80,6 +83,7 @@ const resources = {
80 'Wachtwoord moet ten minste 8 tekens bevatten', 83 'Wachtwoord moet ten minste 8 tekens bevatten',
81 'button.rotate': 'Draai', 84 'button.rotate': 'Draai',
82 'button.print': 'Print', 85 'button.print': 'Print',
86 'button.settings': 'Instellingen',
83 select: 'Selecteer Taal', 87 select: 'Selecteer Taal',
84 }, 88 },
85 }, 89 },
@@ -105,6 +109,7 @@ const resources = {
105 'wifi.alert.password.length.8': '密码至少 8 个字符', 109 'wifi.alert.password.length.8': '密码至少 8 个字符',
106 'button.rotate': '翻转', 110 'button.rotate': '翻转',
107 'button.print': '打印', 111 'button.print': '打印',
112 'button.settings': '设置',
108 select: '选择语言', 113 select: '选择语言',
109 }, 114 },
110 }, 115 },
@@ -130,6 +135,7 @@ const resources = {
130 'wifi.alert.password.8': '密碼至少要有 8 個字符 ', 135 'wifi.alert.password.8': '密碼至少要有 8 個字符 ',
131 'button.rotate': '翻轉', 136 'button.rotate': '翻轉',
132 'button.print': '打印', 137 'button.print': '打印',
138 'button.settings': '设置',
133 select: '選擇語言', 139 select: '選擇語言',
134 }, 140 },
135 }, 141 },
@@ -159,6 +165,7 @@ const resources = {
159 'La contraseña debe tener al menos 8 caracteres', 165 'La contraseña debe tener al menos 8 caracteres',
160 'button.rotate': 'Girar', 166 'button.rotate': 'Girar',
161 'button.print': 'Imprimir', 167 'button.print': 'Imprimir',
168 'button.settings': 'Ajustes',
162 select: 'Seleccionar idioma', 169 select: 'Seleccionar idioma',
163 }, 170 },
164 }, 171 },
@@ -185,6 +192,7 @@ const resources = {
185 'wifi.alert.password.length.8': 'A senha precisa ter no mínimo 8 dígtos', 192 'wifi.alert.password.length.8': 'A senha precisa ter no mínimo 8 dígtos',
186 'button.rotate': 'Girar', 193 'button.rotate': 'Girar',
187 'button.print': 'Imprimir', 194 'button.print': 'Imprimir',
195 'button.settings': 'Definições',
188 select: 'Selecionar Idioma', 196 select: 'Selecionar Idioma',
189 }, 197 },
190 }, 198 },
@@ -212,6 +220,7 @@ const resources = {
212 'パスワードは8文字以上でなければなりません', 220 'パスワードは8文字以上でなければなりません',
213 'button.rotate': '回転する', 221 'button.rotate': '回転する',
214 'button.print': '印刷する', 222 'button.print': '印刷する',
223 'button.settings': '設定',
215 select: '言語を選択', 224 select: '言語を選択',
216 }, 225 },
217 }, 226 },
@@ -240,6 +249,7 @@ const resources = {
240 'Пароль должен состоять не менее чем из 8 символов', 249 'Пароль должен состоять не менее чем из 8 символов',
241 'button.rotate': 'Повернуть', 250 'button.rotate': 'Повернуть',
242 'button.print': 'Распечатать', 251 'button.print': 'Распечатать',
252 'button.settings': 'настройки',
243 select: 'Выбор языка', 253 select: 'Выбор языка',
244 }, 254 },
245 }, 255 },
@@ -266,6 +276,7 @@ const resources = {
266 'wifi.alert.password.8': 'رمز‌عبور باید حداقل ۸ حرف داشته باشد.', 276 'wifi.alert.password.8': 'رمز‌عبور باید حداقل ۸ حرف داشته باشد.',
267 'button.rotate': 'چرخاندن', 277 'button.rotate': 'چرخاندن',
268 'button.print': 'چاپ', 278 'button.print': 'چاپ',
279 'button.settings': 'تنظیمات',
269 select: 'انتخاب زبان', 280 select: 'انتخاب زبان',
270 }, 281 },
271 }, 282 },
@@ -294,6 +305,7 @@ const resources = {
294 'Пароль повинен містити принаймні 8 символів', 305 'Пароль повинен містити принаймні 8 символів',
295 'button.rotate': 'Повернути', 306 'button.rotate': 'Повернути',
296 'button.print': 'Друкувати', 307 'button.print': 'Друкувати',
308 'button.settings': 'налаштування',
297 select: 'Вибір мови', 309 select: 'Вибір мови',
298 }, 310 },
299 }, 311 },
@@ -322,6 +334,7 @@ const resources = {
322 'Das Passwort muss mindestends 8 Zeichen lang sein', 334 'Das Passwort muss mindestends 8 Zeichen lang sein',
323 'button.rotate': 'Drehen', 335 'button.rotate': 'Drehen',
324 'button.print': 'Drucken', 336 'button.print': 'Drucken',
337 'button.settings': 'Einstellungen',
325 select: 'Sprache auswählen', 338 select: 'Sprache auswählen',
326 }, 339 },
327 }, 340 },
@@ -352,6 +365,7 @@ const resources = {
352 'wifi.alert.password.8': 'Hasło musi mieć co najmniej 8 znaków', 365 'wifi.alert.password.8': 'Hasło musi mieć co najmniej 8 znaków',
353 'button.rotate': 'Obróć', 366 'button.rotate': 'Obróć',
354 'button.print': 'Drukuj', 367 'button.print': 'Drukuj',
368 'button.settings': 'Ustawienia',
355 select: 'Wybierz język', 369 select: 'Wybierz język',
356 }, 370 },
357 }, 371 },
@@ -380,6 +394,7 @@ const resources = {
380 'Le mot de passe doit au moins faire 8 caractères', 394 'Le mot de passe doit au moins faire 8 caractères',
381 'button.rotate': 'Pivoter', 395 'button.rotate': 'Pivoter',
382 'button.print': 'Imprimer', 396 'button.print': 'Imprimer',
397 'button.settings': 'Paramètres',
383 select: 'Choisir la langue', 398 select: 'Choisir la langue',
384 }, 399 },
385 }, 400 },
@@ -407,6 +422,7 @@ const resources = {
407 'wifi.alert.password.8': 'Lo senhal deu conténer almens 8 caractèrs', 422 'wifi.alert.password.8': 'Lo senhal deu conténer almens 8 caractèrs',
408 'button.rotate': 'Pivotar', 423 'button.rotate': 'Pivotar',
409 'button.print': 'Imprimir', 424 'button.print': 'Imprimir',
425 'button.settings': 'Paramètres',
410 select: 'Causir la lenga', 426 select: 'Causir la lenga',
411 }, 427 },
412 }, 428 },
@@ -434,6 +450,7 @@ const resources = {
434 'wifi.alert.password.8': 'A Senha deve ter pelo menos 8 caracteres', 450 'wifi.alert.password.8': 'A Senha deve ter pelo menos 8 caracteres',
435 'button.rotate': 'Rotacionar', 451 'button.rotate': 'Rotacionar',
436 'button.print': 'Imprimir', 452 'button.print': 'Imprimir',
453 'button.settings': 'Definições',
437 select: 'Escolha o idioma', 454 select: 'Escolha o idioma',
438 }, 455 },
439 }, 456 },
@@ -462,6 +479,7 @@ const resources = {
462 'La password deve contenere almeno 8 caratteri', 479 'La password deve contenere almeno 8 caratteri',
463 'button.rotate': 'Ruota', 480 'button.rotate': 'Ruota',
464 'button.print': 'Stampa', 481 'button.print': 'Stampa',
482 'button.settings': 'Impostazioni',
465 select: 'Seleziona una lingua', 483 select: 'Seleziona una lingua',
466 }, 484 },
467 }, 485 },
@@ -488,6 +506,7 @@ const resources = {
488 'wifi.alert.password.length.8': 'Parola en az 8 karakter olmalıdır', 506 'wifi.alert.password.length.8': 'Parola en az 8 karakter olmalıdır',
489 'button.rotate': 'Döndür', 507 'button.rotate': 'Döndür',
490 'button.print': 'Yazdır', 508 'button.print': 'Yazdır',
509 'button.settings': 'Ayarlar',
491 select: 'Dil Seçin', 510 select: 'Dil Seçin',
492 }, 511 },
493 }, 512 },
@@ -516,6 +535,7 @@ const resources = {
516 'يجب أن تكون كلمة المرور مكونة من ٨ أحرف على الأقل', 535 'يجب أن تكون كلمة المرور مكونة من ٨ أحرف على الأقل',
517 'button.rotate': 'تدوير', 536 'button.rotate': 'تدوير',
518 'button.print': 'طباعة', 537 'button.print': 'طباعة',
538 'button.settings': 'إعدادات',
519 select: 'اختر لغة', 539 select: 'اختر لغة',
520 }, 540 },
521 }, 541 },
@@ -544,6 +564,7 @@ const resources = {
544 'पासवर्ड कम से कम 8 अक्षरों का होना चाहिए', 564 'पासवर्ड कम से कम 8 अक्षरों का होना चाहिए',
545 'button.rotate': 'घुमाएँ', 565 'button.rotate': 'घुमाएँ',
546 'button.print': 'प्रिंट करे', 566 'button.print': 'प्रिंट करे',
567 'button.settings': 'समायोजन',
547 select: 'भाषा चुने', 568 select: 'भाषा चुने',
548 }, 569 },
549 }, 570 },
@@ -568,10 +589,11 @@ const resources = {
568 'wifi.alert.name': 'El nom de la xarxa no pot estar buit', 589 'wifi.alert.name': 'El nom de la xarxa no pot estar buit',
569 'wifi.alert.password.length.5': 590 'wifi.alert.password.length.5':
570 'La contrasenya ha de tenir com a mínim 5 caràcters', 591 'La contrasenya ha de tenir com a mínim 5 caràcters',
571 'wifi.alert.password.8': 592 'wifi.alert.password.length.8':
572 'La contrasenya ha de tenir com a mínim 8 caràcters', 593 'La contrasenya ha de tenir com a mínim 8 caràcters',
573 'button.rotate': 'Gira', 594 'button.rotate': 'Gira',
574 'button.print': 'Imprimeix', 595 'button.print': 'Imprimeix',
596 'button.settings': 'Configuració',
575 select: 'Escolliu l’idioma', 597 select: 'Escolliu l’idioma',
576 }, 598 },
577 }, 599 },
@@ -595,9 +617,10 @@ const resources = {
595 'Arahkan kamera ponsel anda ke Kode QR untuk terhubung ke WiFi secara otomatis', 617 'Arahkan kamera ponsel anda ke Kode QR untuk terhubung ke WiFi secara otomatis',
596 'wifi.alert.name': 'Nama jaringan tidak boleh kosong', 618 'wifi.alert.name': 'Nama jaringan tidak boleh kosong',
597 'wifi.alert.password.length.5': 'Kata sandi minimal harus 5 karakter', 619 'wifi.alert.password.length.5': 'Kata sandi minimal harus 5 karakter',
598 'wifi.alert.password.8': 'Kata sandi minimal harus 8 karakter', 620 'wifi.alert.password.length.8': 'Kata sandi minimal harus 8 karakter',
599 'button.rotate': 'Putar', 621 'button.rotate': 'Putar',
600 'button.print': 'Cetak', 622 'button.print': 'Cetak',
623 'button.settings': 'Pengaturan',
601 select: 'Pilih Bahasa', 624 select: 'Pilih Bahasa',
602 }, 625 },
603 }, 626 },
diff --git a/src/style.css b/src/style.css
index f29d097..cc43310 100644
--- a/src/style.css
+++ b/src/style.css
@@ -1,6 +1,5 @@
1body { 1body {
2 max-width: 680px; 2 margin: 0 auto;
3} 3 max-width: 500px;
4.tag { 4 padding: 1em;
5 line-height: 1.6;
6} 5}
diff --git a/yarn.lock b/yarn.lock
index e4c98f6..c1dc1f0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1157,6 +1157,13 @@
1157 dependencies: 1157 dependencies:
1158 regenerator-runtime "^0.13.4" 1158 regenerator-runtime "^0.13.4"
1159 1159
1160"@babel/runtime@^7.1.2", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
1161 version "7.14.8"
1162 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446"
1163 integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==
1164 dependencies:
1165 regenerator-runtime "^0.13.4"
1166
1160"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": 1167"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
1161 version "7.14.6" 1168 version "7.14.6"
1162 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" 1169 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d"
@@ -1164,13 +1171,6 @@
1164 dependencies: 1171 dependencies:
1165 regenerator-runtime "^0.13.4" 1172 regenerator-runtime "^0.13.4"
1166 1173
1167"@babel/runtime@^7.9.2":
1168 version "7.14.8"
1169 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446"
1170 integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==
1171 dependencies:
1172 regenerator-runtime "^0.13.4"
1173
1174"@babel/template@^7.10.4", "@babel/template@^7.14.5", "@babel/template@^7.3.3": 1174"@babel/template@^7.10.4", "@babel/template@^7.14.5", "@babel/template@^7.3.3":
1175 version "7.14.5" 1175 version "7.14.5"
1176 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" 1176 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
@@ -1226,6 +1226,11 @@
1226 resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" 1226 resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18"
1227 integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== 1227 integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==
1228 1228
1229"@emotion/hash@^0.7.1":
1230 version "0.7.4"
1231 resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.4.tgz#f14932887422c9056b15a8d222a9074a7dfa2831"
1232 integrity sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A==
1233
1229"@eslint/eslintrc@^0.4.2": 1234"@eslint/eslintrc@^0.4.2":
1230 version "0.4.2" 1235 version "0.4.2"
1231 resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" 1236 resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
@@ -1540,6 +1545,13 @@
1540 estree-walker "^1.0.1" 1545 estree-walker "^1.0.1"
1541 picomatch "^2.2.2" 1546 picomatch "^2.2.2"
1542 1547
1548"@segment/react-tiny-virtual-list@^2.2.1":
1549 version "2.2.1"
1550 resolved "https://registry.yarnpkg.com/@segment/react-tiny-virtual-list/-/react-tiny-virtual-list-2.2.1.tgz#658da8a93cfb83537235c89307818d6f1741aeb3"
1551 integrity sha512-G01b9DrsQLF+8yFRyyJeZBZkzbFuqILG9C7SFFS+GtTFbjdprkHt0CL0riCPOZfe1ZXiT8z8MaKoWfNhrfUjhQ==
1552 dependencies:
1553 prop-types "^15.5.7"
1554
1543"@sinonjs/commons@^1.7.0": 1555"@sinonjs/commons@^1.7.0":
1544 version "1.8.3" 1556 version "1.8.3"
1545 resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" 1557 resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
@@ -1852,11 +1864,41 @@
1852 resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb" 1864 resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb"
1853 integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw== 1865 integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==
1854 1866
1867"@types/prop-types@*":
1868 version "15.7.4"
1869 resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
1870 integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
1871
1855"@types/q@^1.5.1": 1872"@types/q@^1.5.1":
1856 version "1.5.4" 1873 version "1.5.4"
1857 resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" 1874 resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
1858 integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== 1875 integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
1859 1876
1877"@types/react-transition-group@^4.4.0":
1878 version "4.4.2"
1879 resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.2.tgz#38890fd9db68bf1f2252b99a942998dc7877c5b3"
1880 integrity sha512-KibDWL6nshuOJ0fu8ll7QnV/LVTo3PzQ9aCPnRUYPfX7eZohHwLIdNHj7pftanREzHNP4/nJa8oeM73uSiavMQ==
1881 dependencies:
1882 "@types/react" "*"
1883
1884"@types/react@*":
1885 version "17.0.15"
1886 resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.15.tgz#c7533dc38025677e312606502df7656a6ea626d0"
1887 integrity sha512-uTKHDK9STXFHLaKv6IMnwp52fm0hwU+N89w/p9grdUqcFA6WuqDyPhaWopbNyE1k/VhgzmHl8pu1L4wITtmlLw==
1888 dependencies:
1889 "@types/prop-types" "*"
1890 "@types/scheduler" "*"
1891 csstype "^3.0.2"
1892
1893"@types/react@^16.9.5":
1894 version "16.14.11"
1895 resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.11.tgz#992a0cd4b66b9f27315042b5d96e976717368f04"
1896 integrity sha512-Don0MtsZZ3fjwTJ2BsoqkyOy7e176KplEAKOpr/4XDdzinlyJBn9yfsKn5mcSgn4kh1B22+3tBnzBC1z63ybtQ==
1897 dependencies:
1898 "@types/prop-types" "*"
1899 "@types/scheduler" "*"
1900 csstype "^3.0.2"
1901
1860"@types/resolve@0.0.8": 1902"@types/resolve@0.0.8":
1861 version "0.0.8" 1903 version "0.0.8"
1862 resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" 1904 resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
@@ -1864,6 +1906,11 @@
1864 dependencies: 1906 dependencies:
1865 "@types/node" "*" 1907 "@types/node" "*"
1866 1908
1909"@types/scheduler@*":
1910 version "0.16.2"
1911 resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
1912 integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
1913
1867"@types/source-list-map@*": 1914"@types/source-list-map@*":
1868 version "0.1.2" 1915 version "0.1.2"
1869 resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" 1916 resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
@@ -2477,12 +2524,17 @@ array.prototype.flatmap@^1.2.4:
2477 es-abstract "^1.18.0-next.1" 2524 es-abstract "^1.18.0-next.1"
2478 function-bind "^1.1.1" 2525 function-bind "^1.1.1"
2479 2526
2527arrify@^1.0.1:
2528 version "1.0.1"
2529 resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
2530 integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
2531
2480arrify@^2.0.1: 2532arrify@^2.0.1:
2481 version "2.0.1" 2533 version "2.0.1"
2482 resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" 2534 resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
2483 integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== 2535 integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
2484 2536
2485asap@~2.0.6: 2537asap@~2.0.3, asap@~2.0.6:
2486 version "2.0.6" 2538 version "2.0.6"
2487 resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 2539 resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
2488 integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= 2540 integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
@@ -2871,6 +2923,11 @@ boolbase@^1.0.0, boolbase@~1.0.0:
2871 resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 2923 resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
2872 integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 2924 integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
2873 2925
2926bowser@^1.7.3:
2927 version "1.9.4"
2928 resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a"
2929 integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==
2930
2874brace-expansion@^1.1.7: 2931brace-expansion@^1.1.7:
2875 version "1.1.11" 2932 version "1.1.11"
2876 resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 2933 resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -3293,6 +3350,11 @@ class-utils@^0.3.5:
3293 isobject "^3.0.0" 3350 isobject "^3.0.0"
3294 static-extend "^0.1.1" 3351 static-extend "^0.1.1"
3295 3352
3353classnames@^2.2.6:
3354 version "2.3.1"
3355 resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
3356 integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
3357
3296clean-css@^4.2.3: 3358clean-css@^4.2.3:
3297 version "4.2.3" 3359 version "4.2.3"
3298 resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" 3360 resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
@@ -3454,6 +3516,11 @@ compression@^1.7.4:
3454 safe-buffer "5.1.2" 3516 safe-buffer "5.1.2"
3455 vary "~1.1.2" 3517 vary "~1.1.2"
3456 3518
3519compute-scroll-into-view@^1.0.14:
3520 version "1.0.17"
3521 resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab"
3522 integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==
3523
3457concat-map@0.0.1: 3524concat-map@0.0.1:
3458 version "0.0.1" 3525 version "0.0.1"
3459 resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 3526 resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -3560,6 +3627,11 @@ core-js-pure@^3.15.0:
3560 resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.15.0.tgz#c19349ae0be197b8bcf304acf4d91c5e29ae2091" 3627 resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.15.0.tgz#c19349ae0be197b8bcf304acf4d91c5e29ae2091"
3561 integrity sha512-RO+LFAso8DB6OeBX9BAcEGvyth36QtxYon1OyVsITNVtSKr/Hos0BXZwnsOJ7o+O6KHtK+O+cJIEj9NGg6VwFA== 3628 integrity sha512-RO+LFAso8DB6OeBX9BAcEGvyth36QtxYon1OyVsITNVtSKr/Hos0BXZwnsOJ7o+O6KHtK+O+cJIEj9NGg6VwFA==
3562 3629
3630core-js@^1.0.0:
3631 version "1.2.7"
3632 resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
3633 integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
3634
3563core-js@^2.4.0: 3635core-js@^2.4.0:
3564 version "2.6.12" 3636 version "2.6.12"
3565 resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" 3637 resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
@@ -3708,6 +3780,14 @@ css-has-pseudo@^0.10.0:
3708 postcss "^7.0.6" 3780 postcss "^7.0.6"
3709 postcss-selector-parser "^5.0.0-rc.4" 3781 postcss-selector-parser "^5.0.0-rc.4"
3710 3782
3783css-in-js-utils@^2.0.0:
3784 version "2.0.1"
3785 resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99"
3786 integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==
3787 dependencies:
3788 hyphenate-style-name "^1.0.2"
3789 isobject "^3.0.1"
3790
3711css-loader@4.3.0: 3791css-loader@4.3.0:
3712 version "4.3.0" 3792 version "4.3.0"
3713 resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" 3793 resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e"
@@ -3916,6 +3996,11 @@ cssstyle@^2.3.0:
3916 dependencies: 3996 dependencies:
3917 cssom "~0.3.6" 3997 cssom "~0.3.6"
3918 3998
3999csstype@^3.0.2:
4000 version "3.0.8"
4001 resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340"
4002 integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==
4003
3919cyclist@^1.0.1: 4004cyclist@^1.0.1:
3920 version "1.0.1" 4005 version "1.0.1"
3921 resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" 4006 resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
@@ -4164,6 +4249,14 @@ dom-converter@^0.2.0:
4164 dependencies: 4249 dependencies:
4165 utila "~0.4" 4250 utila "~0.4"
4166 4251
4252dom-helpers@^5.0.1:
4253 version "5.2.1"
4254 resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
4255 integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
4256 dependencies:
4257 "@babel/runtime" "^7.8.7"
4258 csstype "^3.0.2"
4259
4167dom-serializer@0: 4260dom-serializer@0:
4168 version "0.2.2" 4261 version "0.2.2"
4169 resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" 4262 resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
@@ -4252,6 +4345,16 @@ dotenv@8.2.0:
4252 resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" 4345 resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
4253 integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== 4346 integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
4254 4347
4348downshift@^5.2.0:
4349 version "5.4.7"
4350 resolved "https://registry.yarnpkg.com/downshift/-/downshift-5.4.7.tgz#2ab7b0512cad33011ee6f29630f9a7bb74dff2b5"
4351 integrity sha512-xaH0RNqwJ5pAsyk9qBmR9XJWmg1OOWMfrhzYv0NH2NjJxn77S3zBcfClw341UfhGyKg5v+qVqg/CQzvAgBNCXQ==
4352 dependencies:
4353 "@babel/runtime" "^7.10.2"
4354 compute-scroll-into-view "^1.0.14"
4355 prop-types "^15.7.2"
4356 react-is "^16.13.1"
4357
4255duplexer@^0.1.1: 4358duplexer@^0.1.1:
4256 version "0.1.2" 4359 version "0.1.2"
4257 resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" 4360 resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
@@ -4330,6 +4433,13 @@ encodeurl@~1.0.2:
4330 resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 4433 resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
4331 integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 4434 integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
4332 4435
4436encoding@^0.1.11:
4437 version "0.1.13"
4438 resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
4439 integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
4440 dependencies:
4441 iconv-lite "^0.6.2"
4442
4333end-of-stream@^1.0.0, end-of-stream@^1.1.0: 4443end-of-stream@^1.0.0, end-of-stream@^1.1.0:
4334 version "1.4.4" 4444 version "1.4.4"
4335 resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 4445 resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@@ -4751,6 +4861,28 @@ eventsource@^1.0.7:
4751 dependencies: 4861 dependencies:
4752 original "^1.0.0" 4862 original "^1.0.0"
4753 4863
4864evergreen-ui@^6.3.0:
4865 version "6.3.0"
4866 resolved "https://registry.yarnpkg.com/evergreen-ui/-/evergreen-ui-6.3.0.tgz#a47a5c0a926a82b3b59bc6ca1d71591507426b70"
4867 integrity sha512-r6JmbEwiIP+AIDcfUP5t+fiw9zcNQqOFJLVMz7syhpr31Cty7nODR1vHlwJ7BA9OcZLcho3xOMgO6atdu2zCVw==
4868 dependencies:
4869 "@babel/runtime" "^7.1.2"
4870 "@segment/react-tiny-virtual-list" "^2.2.1"
4871 "@types/react" "^16.9.5"
4872 "@types/react-transition-group" "^4.4.0"
4873 arrify "^1.0.1"
4874 classnames "^2.2.6"
4875 downshift "^5.2.0"
4876 fuzzaldrin-plus "^0.6.0"
4877 glamor "^2.20.40"
4878 lodash.debounce "^4.0.8"
4879 lodash.merge "^4.6.2"
4880 prop-types "^15.6.2"
4881 react-fast-compare "^3.2.0"
4882 react-transition-group "^4.4.1"
4883 tinycolor2 "^1.4.1"
4884 ui-box "^5.0.0"
4885
4754evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 4886evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
4755 version "1.0.3" 4887 version "1.0.3"
4756 resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 4888 resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
@@ -4942,6 +5074,19 @@ fb-watchman@^2.0.0:
4942 dependencies: 5074 dependencies:
4943 bser "2.1.1" 5075 bser "2.1.1"
4944 5076
5077fbjs@^0.8.12:
5078 version "0.8.17"
5079 resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
5080 integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
5081 dependencies:
5082 core-js "^1.0.0"
5083 isomorphic-fetch "^2.1.1"
5084 loose-envify "^1.0.0"
5085 object-assign "^4.1.0"
5086 promise "^7.1.1"
5087 setimmediate "^1.0.5"
5088 ua-parser-js "^0.7.18"
5089
4945figgy-pudding@^3.5.1: 5090figgy-pudding@^3.5.1:
4946 version "3.5.2" 5091 version "3.5.2"
4947 resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" 5092 resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
@@ -5198,6 +5343,11 @@ functional-red-black-tree@^1.0.1:
5198 resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 5343 resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
5199 integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 5344 integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
5200 5345
5346fuzzaldrin-plus@^0.6.0:
5347 version "0.6.0"
5348 resolved "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.0.tgz#832f6489fbe876769459599c914a670ec22947ee"
5349 integrity sha1-gy9kifvodnaUWVmckUpnDsIpR+4=
5350
5201gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: 5351gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2:
5202 version "1.0.0-beta.2" 5352 version "1.0.0-beta.2"
5203 resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 5353 resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -5246,6 +5396,17 @@ get-value@^2.0.3, get-value@^2.0.6:
5246 resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 5396 resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
5247 integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 5397 integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
5248 5398
5399glamor@^2.20.40:
5400 version "2.20.40"
5401 resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.40.tgz#f606660357b7cf18dface731ad1a2cfa93817f05"
5402 integrity sha512-DNXCd+c14N9QF8aAKrfl4xakPk5FdcFwmH7sD0qnC0Pr7xoZ5W9yovhUrY/dJc3psfGGXC58vqQyRtuskyUJxA==
5403 dependencies:
5404 fbjs "^0.8.12"
5405 inline-style-prefixer "^3.0.6"
5406 object-assign "^4.1.1"
5407 prop-types "^15.5.10"
5408 through "^2.3.8"
5409
5249glob-parent@^3.1.0: 5410glob-parent@^3.1.0:
5250 version "3.1.0" 5411 version "3.1.0"
5251 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 5412 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
@@ -5643,6 +5804,11 @@ husky@^7.0.1:
5643 resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.1.tgz#579f4180b5da4520263e8713cc832942b48e1f1c" 5804 resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.1.tgz#579f4180b5da4520263e8713cc832942b48e1f1c"
5644 integrity sha512-gceRaITVZ+cJH9sNHqx5tFwbzlLCVxtVZcusME8JYQ8Edy5mpGDOqD8QBCdMhpyo9a+JXddnujQ4rpY2Ff9SJA== 5805 integrity sha512-gceRaITVZ+cJH9sNHqx5tFwbzlLCVxtVZcusME8JYQ8Edy5mpGDOqD8QBCdMhpyo9a+JXddnujQ4rpY2Ff9SJA==
5645 5806
5807hyphenate-style-name@^1.0.2:
5808 version "1.0.4"
5809 resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d"
5810 integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==
5811
5646i18next-browser-languagedetector@^6.1.2: 5812i18next-browser-languagedetector@^6.1.2:
5647 version "6.1.2" 5813 version "6.1.2"
5648 resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.2.tgz#68565a28b929cbc98ab6a56826ef2faf0e927ff8" 5814 resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.2.tgz#68565a28b929cbc98ab6a56826ef2faf0e927ff8"
@@ -5664,6 +5830,13 @@ iconv-lite@0.4.24:
5664 dependencies: 5830 dependencies:
5665 safer-buffer ">= 2.1.2 < 3" 5831 safer-buffer ">= 2.1.2 < 3"
5666 5832
5833iconv-lite@^0.6.2:
5834 version "0.6.3"
5835 resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
5836 integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
5837 dependencies:
5838 safer-buffer ">= 2.1.2 < 3.0.0"
5839
5667icss-utils@^4.0.0, icss-utils@^4.1.1: 5840icss-utils@^4.0.0, icss-utils@^4.1.1:
5668 version "4.1.1" 5841 version "4.1.1"
5669 resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" 5842 resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
@@ -5797,6 +5970,21 @@ ini@^1.3.5:
5797 resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 5970 resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
5798 integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 5971 integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
5799 5972
5973inline-style-prefixer@^3.0.6:
5974 version "3.0.8"
5975 resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz#8551b8e5b4d573244e66a34b04f7d32076a2b534"
5976 integrity sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=
5977 dependencies:
5978 bowser "^1.7.3"
5979 css-in-js-utils "^2.0.0"
5980
5981inline-style-prefixer@^5.0.4:
5982 version "5.1.2"
5983 resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-5.1.2.tgz#e5a5a3515e25600e016b71e39138971228486c33"
5984 integrity sha512-PYUF+94gDfhy+LsQxM0g3d6Hge4l1pAqOSOiZuHWzMvQEGsbRQ/ck2WioLqrY2ZkHyPgVUXxn+hrkF7D6QUGbA==
5985 dependencies:
5986 css-in-js-utils "^2.0.0"
5987
5800internal-ip@^4.3.0: 5988internal-ip@^4.3.0:
5801 version "4.3.0" 5989 version "4.3.0"
5802 resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" 5990 resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
@@ -6121,7 +6309,7 @@ is-root@2.1.0:
6121 resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" 6309 resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
6122 integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== 6310 integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
6123 6311
6124is-stream@^1.1.0: 6312is-stream@^1.0.1, is-stream@^1.1.0:
6125 version "1.1.0" 6313 version "1.1.0"
6126 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 6314 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
6127 integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 6315 integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
@@ -6187,6 +6375,14 @@ isobject@^3.0.0, isobject@^3.0.1:
6187 resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 6375 resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
6188 integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 6376 integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
6189 6377
6378isomorphic-fetch@^2.1.1:
6379 version "2.2.1"
6380 resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
6381 integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
6382 dependencies:
6383 node-fetch "^1.0.1"
6384 whatwg-fetch ">=0.10.0"
6385
6190istanbul-lib-coverage@^3.0.0: 6386istanbul-lib-coverage@^3.0.0:
6191 version "3.0.0" 6387 version "3.0.0"
6192 resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" 6388 resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
@@ -6997,7 +7193,7 @@ loglevel@^1.6.8:
6997 resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" 7193 resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
6998 integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== 7194 integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
6999 7195
7000loose-envify@^1.1.0, loose-envify@^1.4.0: 7196loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
7001 version "1.4.0" 7197 version "1.4.0"
7002 resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 7198 resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
7003 integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 7199 integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -7419,6 +7615,14 @@ no-case@^3.0.4:
7419 lower-case "^2.0.2" 7615 lower-case "^2.0.2"
7420 tslib "^2.0.3" 7616 tslib "^2.0.3"
7421 7617
7618node-fetch@^1.0.1:
7619 version "1.7.3"
7620 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
7621 integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
7622 dependencies:
7623 encoding "^0.1.11"
7624 is-stream "^1.0.1"
7625
7422node-forge@^0.10.0: 7626node-forge@^0.10.0:
7423 version "0.10.0" 7627 version "0.10.0"
7424 resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" 7628 resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
@@ -8809,6 +9013,13 @@ promise-inflight@^1.0.1:
8809 resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" 9013 resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
8810 integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= 9014 integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
8811 9015
9016promise@^7.1.1:
9017 version "7.3.1"
9018 resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
9019 integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
9020 dependencies:
9021 asap "~2.0.3"
9022
8812promise@^8.1.0: 9023promise@^8.1.0:
8813 version "8.1.0" 9024 version "8.1.0"
8814 resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" 9025 resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
@@ -8832,7 +9043,7 @@ prompts@^2.0.1:
8832 kleur "^3.0.3" 9043 kleur "^3.0.3"
8833 sisteransi "^1.0.5" 9044 sisteransi "^1.0.5"
8834 9045
8835prop-types@^15.6.0, prop-types@^15.7.2: 9046prop-types@^15.5.10, prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2:
8836 version "15.7.2" 9047 version "15.7.2"
8837 resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 9048 resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
8838 integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 9049 integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -9061,6 +9272,11 @@ react-error-overlay@^6.0.9:
9061 resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" 9272 resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a"
9062 integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== 9273 integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==
9063 9274
9275react-fast-compare@^3.2.0:
9276 version "3.2.0"
9277 resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb"
9278 integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==
9279
9064react-i18next@^11.11.4: 9280react-i18next@^11.11.4:
9065 version "11.11.4" 9281 version "11.11.4"
9066 resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.11.4.tgz#f6f9a1c827e7a5271377de2bf14db04cb1c9e5ce" 9282 resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.11.4.tgz#f6f9a1c827e7a5271377de2bf14db04cb1c9e5ce"
@@ -9069,7 +9285,7 @@ react-i18next@^11.11.4:
9069 "@babel/runtime" "^7.14.5" 9285 "@babel/runtime" "^7.14.5"
9070 html-parse-stringify "^3.0.1" 9286 html-parse-stringify "^3.0.1"
9071 9287
9072react-is@^16.8.1: 9288react-is@^16.13.1, react-is@^16.8.1:
9073 version "16.13.1" 9289 version "16.13.1"
9074 resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 9290 resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
9075 integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 9291 integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -9150,6 +9366,16 @@ react-scripts@^4.0.3:
9150 optionalDependencies: 9366 optionalDependencies:
9151 fsevents "^2.1.3" 9367 fsevents "^2.1.3"
9152 9368
9369react-transition-group@^4.4.1:
9370 version "4.4.2"
9371 resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470"
9372 integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==
9373 dependencies:
9374 "@babel/runtime" "^7.5.5"
9375 dom-helpers "^5.0.1"
9376 loose-envify "^1.4.0"
9377 prop-types "^15.6.2"
9378
9153react@^17.0.2: 9379react@^17.0.2:
9154 version "17.0.2" 9380 version "17.0.2"
9155 resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" 9381 resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
@@ -9582,7 +9808,7 @@ safe-regex@^1.1.0:
9582 dependencies: 9808 dependencies:
9583 ret "~0.1.10" 9809 ret "~0.1.10"
9584 9810
9585"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: 9811"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0:
9586 version "2.1.2" 9812 version "2.1.2"
9587 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 9813 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
9588 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 9814 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -9775,7 +10001,7 @@ set-value@^2.0.0, set-value@^2.0.1:
9775 is-plain-object "^2.0.3" 10001 is-plain-object "^2.0.3"
9776 split-string "^3.0.1" 10002 split-string "^3.0.1"
9777 10003
9778setimmediate@^1.0.4: 10004setimmediate@^1.0.4, setimmediate@^1.0.5:
9779 version "1.0.5" 10005 version "1.0.5"
9780 resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 10006 resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
9781 integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 10007 integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
@@ -10480,6 +10706,11 @@ through2@^2.0.0:
10480 readable-stream "~2.3.6" 10706 readable-stream "~2.3.6"
10481 xtend "~4.0.1" 10707 xtend "~4.0.1"
10482 10708
10709through@^2.3.8:
10710 version "2.3.8"
10711 resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
10712 integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
10713
10483thunky@^1.0.2: 10714thunky@^1.0.2:
10484 version "1.1.0" 10715 version "1.1.0"
10485 resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" 10716 resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
@@ -10497,6 +10728,11 @@ timsort@^0.3.0:
10497 resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" 10728 resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
10498 integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= 10729 integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
10499 10730
10731tinycolor2@^1.4.1:
10732 version "1.4.2"
10733 resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
10734 integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==
10735
10500tmpl@1.0.x: 10736tmpl@1.0.x:
10501 version "1.0.4" 10737 version "1.0.4"
10502 resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" 10738 resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
@@ -10681,6 +10917,20 @@ typedarray@^0.0.6:
10681 resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 10917 resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
10682 integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= 10918 integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
10683 10919
10920ua-parser-js@^0.7.18:
10921 version "0.7.28"
10922 resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31"
10923 integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==
10924
10925ui-box@^5.0.0:
10926 version "5.0.0"
10927 resolved "https://registry.yarnpkg.com/ui-box/-/ui-box-5.0.0.tgz#8b73e81cc7a50cf53749b969d411e8f56a93af48"
10928 integrity sha512-DJZZKe8UoB1e6hNenNniO3ror9ER57EG5k+fOUm17vrLnU2T4vhoTnWGoStewXJzQ4Ur9ox9Xk4kljVKFpXlzQ==
10929 dependencies:
10930 "@emotion/hash" "^0.7.1"
10931 inline-style-prefixer "^5.0.4"
10932 prop-types "^15.7.2"
10933
10684unbox-primitive@^1.0.1: 10934unbox-primitive@^1.0.1:
10685 version "1.0.1" 10935 version "1.0.1"
10686 resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 10936 resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
@@ -11111,7 +11361,7 @@ whatwg-encoding@^1.0.5:
11111 dependencies: 11361 dependencies:
11112 iconv-lite "0.4.24" 11362 iconv-lite "0.4.24"
11113 11363
11114whatwg-fetch@^3.4.1: 11364whatwg-fetch@>=0.10.0, whatwg-fetch@^3.4.1:
11115 version "3.6.2" 11365 version "3.6.2"
11116 resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" 11366 resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
11117 integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== 11367 integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==