diff --git a/frontend/app/Router.js b/frontend/app/Router.js index 681f8a264..044335593 100644 --- a/frontend/app/Router.js +++ b/frontend/app/Router.js @@ -13,7 +13,7 @@ import { withStore } from 'App/mstore'; import APIClient from './api_client'; import * as routes from './routes'; import { OB_DEFAULT_TAB, isRoute } from 'App/routes'; -import Signup from './components/Signup/Signup'; +import Signup from 'Components/Signup'; import { fetchTenants } from 'Duck/user'; import { setSessionPath } from 'Duck/sessions'; import { ModalProvider } from './components/Modal'; diff --git a/frontend/app/components/Signup/Signup.js b/frontend/app/components/Signup/Signup.js deleted file mode 100644 index c52681c88..000000000 --- a/frontend/app/components/Signup/Signup.js +++ /dev/null @@ -1,101 +0,0 @@ -import React from 'react'; -import withPageTitle from 'HOCs/withPageTitle'; -import { Icon } from 'UI'; - -import { connect } from 'react-redux'; -import cn from 'classnames'; -import SignupForm from './SignupForm'; -import RegisterBg from '../../svg/register.svg'; -import HealthModal from 'Components/Header/HealthStatus/HealthModal/HealthModal'; -import { getHealthRequest } from 'Components/Header/HealthStatus/getHealth'; -import { login } from 'App/routes'; -import { withRouter } from 'react-router-dom'; -import { fetchTenants } from 'Duck/user'; -import Copyright from 'Shared/Copyright'; - -const LOGIN_ROUTE = login(); -const BulletItem = ({ text }) => ( -
-
- -
-
{text}
-
-); - -const healthStatusCheck_key = '__or__healthStatusCheck_key' - -@connect( - (state, props) => ({ - loading: state.getIn(['user', 'loginRequest', 'loading']), - authDetails: state.getIn(['user', 'authDetails']), - }), { fetchTenants } -) -@withPageTitle('Signup - OpenReplay') -@withRouter -export default class Signup extends React.Component { - state = { - healthModalPassed: localStorage.getItem(healthStatusCheck_key === 'true'), - healthStatusLoading: true, - healthStatus: null, - } - - static getDerivedStateFromProps(nextProps, prevState) { - const { authDetails } = nextProps; - if (Object.keys(authDetails).length === 0) { - return null; - } - - if (authDetails.tenants) { - nextProps.history.push(LOGIN_ROUTE); - } - - return null; - } - - getHealth = async () => { - this.setState({ healthStatusLoading: true }); - const { healthMap } = await getHealthRequest(true); - this.setState({ healthStatus: healthMap, healthStatusLoading: false }); - } - - componentDidMount() { - if (!this.state.healthModalPassed) void this.getHealth(); - - const { authDetails } = this.props; - if (Object.keys(authDetails).length === 0) { - this.props.fetchTenants(); - } - } - - setHealthModalPassed = () => { - localStorage.setItem(healthStatusCheck_key, 'true'); - this.setState({ healthModalPassed: true }); - } - - render() { - if (!this.state.healthModalPassed) { - return ( - null} - healthResponse={this.state.healthStatus} - getHealth={this.getHealth} - isLoading={this.state.healthStatusLoading} - setPassed={this.setHealthModalPassed} - /> - ) - } - - return ( -
-
-
- -
-
- - -
- ); - } -} diff --git a/frontend/app/components/Signup/Signup.tsx b/frontend/app/components/Signup/Signup.tsx new file mode 100644 index 000000000..0165fe4da --- /dev/null +++ b/frontend/app/components/Signup/Signup.tsx @@ -0,0 +1,91 @@ +import React, { useEffect, useState } from 'react'; +import { withRouter, RouteComponentProps } from 'react-router-dom'; +import { connect, ConnectedProps } from 'react-redux'; +import { Icon } from 'UI'; +import SignupForm from './SignupForm'; +import HealthModal from 'Components/Header/HealthStatus/HealthModal/HealthModal'; +import { getHealthRequest } from 'Components/Header/HealthStatus/getHealth'; +import { fetchTenants } from 'Duck/user'; +import withPageTitle from 'HOCs/withPageTitle'; +import { login } from 'App/routes'; +import Copyright from 'Shared/Copyright'; + +const LOGIN_ROUTE = login(); +const BulletItem: React.FC<{ text: string }> = ({ text }) => ( +
+
+ +
+
{text}
+
+); + +const healthStatusCheck_key = '__or__healthStatusCheck_key'; + +const mapStateToProps = (state: any) => ({ + loading: state.getIn(['user', 'loginRequest', 'loading']), + authDetails: state.getIn(['user', 'authDetails']) +}); + +const mapDispatchToProps = { + fetchTenants +}; + +const connector = connect(mapStateToProps, mapDispatchToProps); + +type PropsFromRedux = ConnectedProps; + +type SignupProps = PropsFromRedux & RouteComponentProps; + +const Signup: React.FC = ({ loading, authDetails, fetchTenants, history }) => { + const [healthModalPassed, setHealthModalPassed] = useState(localStorage.getItem(healthStatusCheck_key) === 'true'); + const [healthStatusLoading, setHealthStatusLoading] = useState(true); + const [healthStatus, setHealthStatus] = useState(null); + + const getHealth = async () => { + setHealthStatusLoading(true); + const { healthMap } = await getHealthRequest(true); + setHealthStatus(healthMap); + setHealthStatusLoading(false); + }; + + useEffect(() => { + if (!healthModalPassed) void getHealth(); + + if (Object.keys(authDetails).length === 0) { + fetchTenants(); + } + }, []); + + useEffect(() => { + if (Object.keys(authDetails).length === 0) { + history.push(LOGIN_ROUTE); + } + }, [authDetails]); + + if (!healthModalPassed) { + return ( + null} + healthResponse={healthStatus} + getHealth={getHealth} + isLoading={healthStatusLoading} + setPassed={() => setHealthModalPassed(true)} + /> + ); + } + + return ( +
+
+
+ +
+
+ + +
+ ); +}; + +export default connector(withRouter(withPageTitle('Signup - OpenReplay')(Signup))); diff --git a/frontend/app/components/Signup/SignupForm/SignupForm.js b/frontend/app/components/Signup/SignupForm/SignupForm.js deleted file mode 100644 index b8242cc84..000000000 --- a/frontend/app/components/Signup/SignupForm/SignupForm.js +++ /dev/null @@ -1,201 +0,0 @@ -import React from 'react'; -import { Form, Input, Icon, Button, Link } from 'UI'; -import { login } from 'App/routes'; -import ReCAPTCHA from 'react-google-recaptcha'; -import stl from './signup.module.css'; -import { signup } from 'Duck/user'; -import { connect } from 'react-redux'; -import Select from 'Shared/Select'; -import { SITE_ID_STORAGE_KEY } from 'App/constants/storageKeys'; - -const LOGIN_ROUTE = login(); -const recaptchaRef = React.createRef(); - -@connect( - (state) => ({ - tenants: state.getIn(['user', 'tenants']), - errors: state.getIn(['user', 'signupRequest', 'errors']), - loading: state.getIn(['user', 'signupRequest', 'loading']), - }), - { signup } -) -export default class SignupForm extends React.Component { - state = { - tenantId: '', - fullname: '', - password: '', - email: '', - projectName: '', - organizationName: '', - reload: false, - CAPTCHA_ENABLED: window.env.CAPTCHA_ENABLED === 'true', - }; - - static getDerivedStateFromProps(props, state) { - if (props.errors && props.errors.size > 0 && state.reload) { - recaptchaRef.current.reset(); - return { - reload: false, - }; - } - return null; - } - - handleSubmit = (token) => { - const { tenantId, fullname, password, email, projectName, organizationName, auth } = this.state; - localStorage.removeItem(SITE_ID_STORAGE_KEY); - this.props.signup({ - tenantId, - fullname, - password, - email, - projectName, - organizationName, - auth, - 'g-recaptcha-response': token, - }); - this.setState({ reload: true }); - }; - - write = ({ target: { value, name } }) => this.setState({ [name]: value }); - writeOption = ({ name, value }) => this.setState({ [name]: value.value }); - - onSubmit = (e) => { - e.preventDefault(); - const { CAPTCHA_ENABLED } = this.state; - if (CAPTCHA_ENABLED && recaptchaRef.current) { - recaptchaRef.current.execute(); - } else if (!CAPTCHA_ENABLED) { - this.handleSubmit(); - } - }; - render() { - const { loading, errors, tenants } = this.props; - const { CAPTCHA_ENABLED } = this.state; - - return ( -
-
- -
-
-
-

- Create Account -

-
- <> - {CAPTCHA_ENABLED && ( - this.handleSubmit(token)} - /> - )} -
- {tenants.length > 0 && ( - - - - - - - - - - - - - - - - - - -
-
- By signing up, you agree to our{' '} - - terms of service - {' '} - and{' '} - - privacy policy - - . -
-
-
- - {errors && ( -
- {errors.map((error) => ( -
- - - {error} -
-
-
- ))} -
- )} - - -
- Already having an account?{' '} - - Login - -
-
- ); - } -} diff --git a/frontend/app/components/Signup/SignupForm/SignupForm.tsx b/frontend/app/components/Signup/SignupForm/SignupForm.tsx new file mode 100644 index 000000000..091400647 --- /dev/null +++ b/frontend/app/components/Signup/SignupForm/SignupForm.tsx @@ -0,0 +1,217 @@ +import React, { useState, useRef, ChangeEvent, FormEvent, useEffect } from 'react'; +import { Form, Input, Button, Link } from 'UI'; +import { login } from 'App/routes'; +import ReCAPTCHA from 'react-google-recaptcha'; +import { signup } from 'Duck/user'; +import { connect, ConnectedProps } from 'react-redux'; +import Select from 'Shared/Select'; +import { SITE_ID_STORAGE_KEY } from 'App/constants/storageKeys'; +import { validatePassword } from 'App/validate'; +import { PASSWORD_POLICY } from 'App/constants'; +import { Alert, Space } from 'antd'; + +const LOGIN_ROUTE = login(); + +const mapState = (state: any) => ({ + tenants: state.getIn(['user', 'tenants']), + errors: state.getIn(['user', 'signupRequest', 'errors']), + loading: state.getIn(['user', 'signupRequest', 'loading']) +}); + +const mapDispatch = { + signup +}; + +const connector = connect(mapState, mapDispatch); + +type PropsFromRedux = ConnectedProps; + +type SignupFormProps = PropsFromRedux; + +const SignupForm: React.FC = ({ tenants, errors, loading, signup }) => { + const [state, setState] = useState({ + tenantId: '', + fullname: '', + password: '', + email: '', + projectName: '', + organizationName: '', + reload: false, + CAPTCHA_ENABLED: window.env.CAPTCHA_ENABLED === 'true' + }); + const recaptchaRef = useRef(null); + const [passwordError, setPasswordError] = useState(null); + + const handleSubmit = (token: string) => { + const { tenantId, fullname, password, email, projectName, organizationName, auth } = state; + if (!validatePassword(password)) return; + localStorage.removeItem(SITE_ID_STORAGE_KEY); + signup({ + tenantId, + fullname, + password, + email, + projectName, + organizationName, + auth, + 'g-recaptcha-response': token + }); + setState({ ...state, reload: true }); + }; + + const write = ({ target: { value, name } }: ChangeEvent) => + setState({ ...state, [name]: value }); + + const writeOption = ({ name, value }: { name: string; value: { value: string } }) => + setState({ ...state, [name]: value.value }); + + const onSubmit = (e: FormEvent) => { + e.preventDefault(); + const { CAPTCHA_ENABLED } = state; + if (CAPTCHA_ENABLED && recaptchaRef.current) { + recaptchaRef.current.execute(); + } else if (!CAPTCHA_ENABLED) { + handleSubmit(''); + } + }; + + useEffect(() => { + if (state.password && !validatePassword(state.password)) { + setPasswordError('Password must be at least 8 characters long'); + } else { + setPasswordError(null); + } + }, [state.password]); + + return ( +
+
+ Logo +
+
+
+

+ Create Account +

+
+ <> + {state.CAPTCHA_ENABLED && ( + handleSubmit(token || '')} + /> + )} +
+ {tenants.length > 0 && ( + + + + + + + + + + + + + + + + + + {passwordError && ( + // + + )} + {errors && errors.length && ( + + )} + + +
+
+ By signing up, you agree to our{' '} + + terms of service + {' '} + and{' '} + + privacy policy + + . +
+
+
+ + + +
+ Already having an account?{' '} + + Login + +
+
+ ); +}; + +export default connector(SignupForm); diff --git a/frontend/app/components/Signup/SignupForm/index.js b/frontend/app/components/Signup/SignupForm/index.ts similarity index 100% rename from frontend/app/components/Signup/SignupForm/index.js rename to frontend/app/components/Signup/SignupForm/index.ts diff --git a/frontend/app/components/Signup/index.ts b/frontend/app/components/Signup/index.ts new file mode 100644 index 000000000..6f887af30 --- /dev/null +++ b/frontend/app/components/Signup/index.ts @@ -0,0 +1 @@ +export { default } from './Signup' \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 7f05080c2..5a9267ad2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,6 +27,7 @@ "@sentry/browser": "^5.21.1", "@svg-maps/world": "^1.0.1", "@svgr/webpack": "^6.2.1", + "antd": "^5.5.0", "chroma-js": "^2.4.2", "classnames": "^2.3.1", "copy-to-clipboard": "^3.3.1", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index dbb069dfb..3019a0c0c 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -15,6 +15,71 @@ __metadata: languageName: node linkType: hard +"@ant-design/colors@npm:^7.0.0": + version: 7.0.0 + resolution: "@ant-design/colors@npm:7.0.0" + dependencies: + "@ctrl/tinycolor": ^3.4.0 + checksum: 8c64d185c31cb3ff8148bc9155db8a30923b813afa7c412db8047e1b4ded34e73ed8bcaea37011e325d2d0fdf5e506aa27d8a10bdd2dd31c63bfe7123c22830d + languageName: node + linkType: hard + +"@ant-design/cssinjs@npm:^1.9.1": + version: 1.9.1 + resolution: "@ant-design/cssinjs@npm:1.9.1" + dependencies: + "@babel/runtime": ^7.11.1 + "@emotion/hash": ^0.8.0 + "@emotion/unitless": ^0.7.5 + classnames: ^2.3.1 + csstype: ^3.0.10 + rc-util: ^5.27.0 + stylis: ^4.0.13 + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 8583cc6e265c21beaf295212a04eec2cbf123c8912b42a2c97fb2655c13397196691010f5b6526be254092764b7500cb2bbfc3581d05210c529c8d9d735bb049 + languageName: node + linkType: hard + +"@ant-design/icons-svg@npm:^4.2.1": + version: 4.2.1 + resolution: "@ant-design/icons-svg@npm:4.2.1" + checksum: 8817e98c5f7f6110947e4b029f5dcae8cd7154b7a6a7421b6f25e899ed04eb5fc60bcd0ce5c15b09826f0562a568a8d386dc99b928cbaee8ce8b833b80c0575a + languageName: node + linkType: hard + +"@ant-design/icons@npm:^5.0.0": + version: 5.0.1 + resolution: "@ant-design/icons@npm:5.0.1" + dependencies: + "@ant-design/colors": ^7.0.0 + "@ant-design/icons-svg": ^4.2.1 + "@babel/runtime": ^7.11.2 + classnames: ^2.2.6 + rc-util: ^5.9.4 + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: c1bc8dbe1f3ce76ba934e0ea61bcabc04a942651a9366908d8081af0de37acca37c40ba93de2ae1d49b4b2591fc6b9bc7b9904824478f02fc69effae00aaf0ab + languageName: node + linkType: hard + +"@ant-design/react-slick@npm:~1.0.0": + version: 1.0.1 + resolution: "@ant-design/react-slick@npm:1.0.1" + dependencies: + "@babel/runtime": ^7.10.4 + classnames: ^2.2.5 + json2mq: ^0.2.0 + resize-observer-polyfill: ^1.5.1 + throttle-debounce: ^5.0.0 + peerDependencies: + react: ">=16.9.0" + checksum: e8a9fa39ed455ef3c15844901232a36be47ba2c289ffbf017b6a1de669f5f6935032a670999e137eac8cbe17e6ddbe38dd1840750c0d8b2629d233304bacb211 + languageName: node + linkType: hard + "@apideck/better-ajv-errors@npm:^0.3.1": version: 0.3.6 resolution: "@apideck/better-ajv-errors@npm:0.3.6" @@ -1617,6 +1682,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0": + version: 7.21.5 + resolution: "@babel/runtime@npm:7.21.5" + dependencies: + regenerator-runtime: ^0.13.11 + checksum: c704c36bf1c7f948b1d404e3ad3b00897f6dbaf8bb9455b0a78f96ed0e2f24599f89fd3950a277566be6694ab8814a47bec743e98dd7c7f57e9f0fedc6c6c32f + languageName: node + linkType: hard + "@babel/runtime@npm:~7.5.4": version: 7.5.5 resolution: "@babel/runtime@npm:7.5.5" @@ -1718,6 +1792,13 @@ __metadata: languageName: node linkType: hard +"@ctrl/tinycolor@npm:^3.4.0, @ctrl/tinycolor@npm:^3.6.0": + version: 3.6.0 + resolution: "@ctrl/tinycolor@npm:3.6.0" + checksum: 9c651470ac4b10def674781b17cb8fcc3deb16d6b2b1ed36a308a645f4039a6158bcd385e86ba2dc75a0102e40f46d7456dff61b64a26ba68d20c6acf7d47285 + languageName: node + linkType: hard + "@cypress/request@npm:^2.88.10": version: 2.88.11 resolution: "@cypress/request@npm:2.88.11" @@ -1873,6 +1954,13 @@ __metadata: languageName: node linkType: hard +"@emotion/hash@npm:^0.8.0": + version: 0.8.0 + resolution: "@emotion/hash@npm:0.8.0" + checksum: 706303d35d416217cd7eb0d36dbda4627bb8bdf4a32ea387e8dd99be11b8e0a998e10af21216e8a5fade518ad955ff06aa8890f20e694ce3a038ae7fc1000556 + languageName: node + linkType: hard + "@emotion/hash@npm:^0.9.0": version: 0.9.0 resolution: "@emotion/hash@npm:0.9.0" @@ -1931,6 +2019,13 @@ __metadata: languageName: node linkType: hard +"@emotion/unitless@npm:^0.7.5": + version: 0.7.5 + resolution: "@emotion/unitless@npm:0.7.5" + checksum: 4d0d94f53cb97b4481bbfa394953e1899a0b877644642ba9dd7247c27eb8c48e14e22aeb11411d7d9874685ad85dd5fb5b50eb78c6d8840eb56a84b92dcef2f4 + languageName: node + linkType: hard + "@emotion/unitless@npm:^0.8.0": version: 0.8.0 resolution: "@emotion/unitless@npm:0.8.0" @@ -2663,6 +2758,106 @@ __metadata: languageName: node linkType: hard +"@rc-component/color-picker@npm:~1.0.0": + version: 1.0.0 + resolution: "@rc-component/color-picker@npm:1.0.0" + dependencies: + "@babel/runtime": ^7.10.1 + "@ctrl/tinycolor": ^3.6.0 + "@rc-component/context": ^1.3.0 + "@rc-component/trigger": ^1.10.2 + classnames: ^2.2.6 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 946e953e23d51603173496609ad1f0bd91db2978e6103ad0c23537723c3a9c1179b06c89e1cf0aa22e557b108c233d2910be9f983083d8e99845736b3c685166 + languageName: node + linkType: hard + +"@rc-component/context@npm:^1.3.0": + version: 1.3.0 + resolution: "@rc-component/context@npm:1.3.0" + dependencies: + "@babel/runtime": ^7.10.1 + rc-util: ^5.27.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 31132d93919fedac49267a732c66ec3c05765705998d9539957a0e680ec8f3b50caf94b82ae67ecd3ed61b56b1d8ba796188e875b3e80e96d2261dd18712ee49 + languageName: node + linkType: hard + +"@rc-component/mini-decimal@npm:^1.0.1": + version: 1.0.1 + resolution: "@rc-component/mini-decimal@npm:1.0.1" + dependencies: + "@babel/runtime": ^7.18.0 + checksum: 9398bcef4d254813fbe3dfd550c630cf37a57c004d994821cfe9b5556f325fc70a2780a29725eaa429910579852c14e11e5706b07ba1233c5fa59bee5f478fa7 + languageName: node + linkType: hard + +"@rc-component/mutate-observer@npm:^1.0.0": + version: 1.0.0 + resolution: "@rc-component/mutate-observer@npm:1.0.0" + dependencies: + "@babel/runtime": ^7.18.0 + classnames: ^2.3.2 + rc-util: ^5.24.4 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 0e5b70d5d6c6838c482f88a55eb697225e1a9f3d921205af6866205cc2b143eaa48b6cc05394db28ac2c682bcdca309f1493a2b56e6aaf94e509b81c971410fe + languageName: node + linkType: hard + +"@rc-component/portal@npm:^1.0.0-6, @rc-component/portal@npm:^1.0.0-8, @rc-component/portal@npm:^1.0.0-9, @rc-component/portal@npm:^1.0.2, @rc-component/portal@npm:^1.1.0": + version: 1.1.1 + resolution: "@rc-component/portal@npm:1.1.1" + dependencies: + "@babel/runtime": ^7.18.0 + classnames: ^2.3.2 + rc-util: ^5.24.4 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: ee3542ef08d354533d76f552b7f1aa19edde582b51a801c25e7dbcd6dcee251ee113379f65069a4b48c440764e061fe035c9424b20a11869a9b64c9b05f03a94 + languageName: node + linkType: hard + +"@rc-component/tour@npm:~1.8.0": + version: 1.8.0 + resolution: "@rc-component/tour@npm:1.8.0" + dependencies: + "@babel/runtime": ^7.18.0 + "@rc-component/portal": ^1.0.0-9 + "@rc-component/trigger": ^1.3.6 + classnames: ^2.3.2 + rc-util: ^5.24.4 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 87e0b4ec19a9a85d4470f1d1946f087137c7795b94897f805a5cd2f91133c1230f6da123946036d8d80d378f57dc136bb0e00f57d7e2006cb66d2e287fe7759f + languageName: node + linkType: hard + +"@rc-component/trigger@npm:^1.0.4, @rc-component/trigger@npm:^1.10.2, @rc-component/trigger@npm:^1.12.0, @rc-component/trigger@npm:^1.3.6, @rc-component/trigger@npm:^1.5.0, @rc-component/trigger@npm:^1.7.0": + version: 1.12.1 + resolution: "@rc-component/trigger@npm:1.12.1" + dependencies: + "@babel/runtime": ^7.18.3 + "@rc-component/portal": ^1.1.0 + classnames: ^2.3.2 + rc-align: ^4.0.0 + rc-motion: ^2.0.0 + rc-resize-observer: ^1.3.1 + rc-util: ^5.29.2 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 9422668e332427623f3aeb0dc202f69ae748934e00c9141f5b33abfb299fd45a4c09977f409c6aefea30befc9bd674790c9b0360db4350b9487bafb9b7904668 + languageName: node + linkType: hard + "@react-dnd/asap@npm:4.0.1": version: 4.0.1 resolution: "@react-dnd/asap@npm:4.0.1" @@ -6066,6 +6261,65 @@ __metadata: languageName: node linkType: hard +"antd@npm:^5.5.0": + version: 5.5.0 + resolution: "antd@npm:5.5.0" + dependencies: + "@ant-design/colors": ^7.0.0 + "@ant-design/cssinjs": ^1.9.1 + "@ant-design/icons": ^5.0.0 + "@ant-design/react-slick": ~1.0.0 + "@babel/runtime": ^7.18.3 + "@ctrl/tinycolor": ^3.6.0 + "@rc-component/color-picker": ~1.0.0 + "@rc-component/mutate-observer": ^1.0.0 + "@rc-component/tour": ~1.8.0 + "@rc-component/trigger": ^1.12.0 + classnames: ^2.2.6 + copy-to-clipboard: ^3.2.0 + dayjs: ^1.11.1 + qrcode.react: ^3.1.0 + rc-cascader: ~3.11.2 + rc-checkbox: ~3.0.0 + rc-collapse: ~3.5.2 + rc-dialog: ~9.1.0 + rc-drawer: ~6.1.1 + rc-dropdown: ~4.1.0 + rc-field-form: ~1.31.0 + rc-image: ~5.16.0 + rc-input: ~1.0.4 + rc-input-number: ~7.4.0 + rc-mentions: ~2.2.0 + rc-menu: ~9.8.3 + rc-motion: ^2.7.3 + rc-notification: ~5.0.4 + rc-pagination: ~3.3.1 + rc-picker: ~3.7.4 + rc-progress: ~3.4.1 + rc-rate: ~2.10.0 + rc-resize-observer: ^1.2.0 + rc-segmented: ~2.2.0 + rc-select: ~14.4.3 + rc-slider: ~10.1.0 + rc-steps: ~6.0.0 + rc-switch: ~4.1.0 + rc-table: ~7.32.1 + rc-tabs: ~12.6.0 + rc-textarea: ~1.2.2 + rc-tooltip: ~6.0.0 + rc-tree: ~5.7.0 + rc-tree-select: ~5.8.0 + rc-upload: ~4.3.0 + rc-util: ^5.27.0 + scroll-into-view-if-needed: ^3.0.3 + throttle-debounce: ^5.0.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: fe42b0f4e98fe8be416b8871cb5a6ed3044be63dc7fc0acfc88525908d299a8df5657e9c523b62dcbc277c75fc87165864cf9526b65fef001e0cd248b8899ff0 + languageName: node + linkType: hard + "anymatch@npm:^2.0.0": version: 2.0.0 resolution: "anymatch@npm:2.0.0" @@ -6269,6 +6523,13 @@ __metadata: languageName: node linkType: hard +"array-tree-filter@npm:^2.1.0": + version: 2.1.0 + resolution: "array-tree-filter@npm:2.1.0" + checksum: 6fd1677522b20d10fd918e446db40c3e313eac9ed77ca8a5ea45f43b69c40300655c69760c159fd2cd189985323231a5077858c59fa3ca9c6c2439635eb8557e + languageName: node + linkType: hard + "array-union@npm:^1.0.2": version: 1.0.2 resolution: "array-union@npm:1.0.2" @@ -6444,6 +6705,13 @@ __metadata: languageName: node linkType: hard +"async-validator@npm:^4.1.0": + version: 4.2.5 + resolution: "async-validator@npm:4.2.5" + checksum: 0ec09ee388aae5f6b037a320049a369b681ca9b341b28e2693e50e89b5c4c64c057a2c57f9fc1c18dd020823809d8af4b72b278e0a7a872c9e3accd5c4c3ce3a + languageName: node + linkType: hard + "async@npm:^3.1.0, async@npm:^3.2.0, async@npm:^3.2.3": version: 3.2.4 resolution: "async@npm:3.2.4" @@ -7859,7 +8127,7 @@ __metadata: languageName: node linkType: hard -"classnames@npm:2.x, classnames@npm:^2.1.1, classnames@npm:^2.2.5, classnames@npm:^2.2.6, classnames@npm:^2.3.1": +"classnames@npm:2.x, classnames@npm:^2.1.1, classnames@npm:^2.2.1, classnames@npm:^2.2.3, classnames@npm:^2.2.5, classnames@npm:^2.2.6, classnames@npm:^2.3.1, classnames@npm:^2.3.2": version: 2.3.2 resolution: "classnames@npm:2.3.2" checksum: cd50ead57b4f97436aaa9f9885c6926323efc7c2bea8e3d4eb10e4e972aa6a1cfca1c7a0e06f8a199ca7498d4339e30bb6002e589e61c9f21248cbf3e8b0b18d @@ -8331,6 +8599,13 @@ __metadata: languageName: node linkType: hard +"compute-scroll-into-view@npm:^3.0.2": + version: 3.0.3 + resolution: "compute-scroll-into-view@npm:3.0.3" + checksum: 43feebe676552ea061308a17d25b7dea498255b6777368bf950adf6cb504b7b4f6eca3a8c989564527b8bcdaafab93f346760d15f73a6536cd0467286873355c + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -8476,7 +8751,7 @@ __metadata: languageName: node linkType: hard -"copy-to-clipboard@npm:^3.3.1": +"copy-to-clipboard@npm:^3.2.0, copy-to-clipboard@npm:^3.3.1": version: 3.3.3 resolution: "copy-to-clipboard@npm:3.3.3" dependencies: @@ -8955,6 +9230,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.0.10": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: 32c038af259897c807ac738d9eab16b3d86747c72b09d5c740978e06f067f9b7b1737e1b75e407c7ab1fe1543dc95f20e202b4786aeb1b8d3bdf5d5ce655e6c6 + languageName: node + linkType: hard + "csstype@npm:^3.0.2": version: 3.1.1 resolution: "csstype@npm:3.1.1" @@ -9172,7 +9454,7 @@ __metadata: languageName: node linkType: hard -"dayjs@npm:^1.10.4": +"dayjs@npm:^1.10.4, dayjs@npm:^1.11.1": version: 1.11.7 resolution: "dayjs@npm:1.11.7" checksum: 41a54853c8b8bf0fa94a5559eec98b3e4d11b31af81a9558a159d40adeaafb1f3414e8c41a4e3277281d97687d8252f400015e1f715b47f8c24d88a9ebd43626 @@ -14606,6 +14888,15 @@ __metadata: languageName: node linkType: hard +"json2mq@npm:^0.2.0": + version: 0.2.0 + resolution: "json2mq@npm:0.2.0" + dependencies: + string-convert: ^0.2.0 + checksum: fc9e2f2306572522d3e61d246afdf70b56ca9ea32f4ad5924c30949867851ab59c926bd0ffc821ebb54d32f3e82e95225f3906eacdb3e54c1ad49acdadf7e0c7 + languageName: node + linkType: hard + "json5@npm:^1.0.1": version: 1.0.2 resolution: "json5@npm:1.0.2" @@ -17199,6 +17490,7 @@ __metadata: "@types/react-virtualized": ^9.21.21 "@typescript-eslint/eslint-plugin": ^5.24.0 "@typescript-eslint/parser": ^5.24.0 + antd: ^5.5.0 autoprefixer: ^10.4.7 babel-loader: ^8.2.4 babel-plugin-react-require: ^3.1.3 @@ -17260,7 +17552,7 @@ __metadata: react-dnd-html5-backend: ^15.1.2 react-dom: ^18.2.0 react-draggable: ^4.4.5 - react-google-recaptcha: ^1.1.0 + react-google-recaptcha: ^2.1.0 react-highlight: ^0.14.0 react-json-view: ^1.21.3 react-lazyload: ^3.2.0 @@ -18918,6 +19210,15 @@ __metadata: languageName: node linkType: hard +"qrcode.react@npm:^3.1.0": + version: 3.1.0 + resolution: "qrcode.react@npm:3.1.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: af183e99ecaad90f7ef14bd027510ae7866935693c53ccf81b172438abbbf7f29c283c5dc7c2141b420d2413960b8f8dca8d9949646475afe669ed638e8fb722 + languageName: node + linkType: hard + "qs@npm:6.11.0, qs@npm:^6.10.0": version: 6.11.0 resolution: "qs@npm:6.11.0" @@ -19080,6 +19381,22 @@ __metadata: languageName: node linkType: hard +"rc-align@npm:^4.0.0": + version: 4.0.15 + resolution: "rc-align@npm:4.0.15" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: 2.x + dom-align: ^1.7.0 + rc-util: ^5.26.0 + resize-observer-polyfill: ^1.5.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 996e6d8a3988a57438e145717997d4fb88e0d8b9f1acf315c0698189db480f6cde85e143f2a94f6cf719a5c3077317b6efaad15b1d781ee42c2da33af404d5b4 + languageName: node + linkType: hard + "rc-animate@npm:2.x": version: 2.11.1 resolution: "rc-animate@npm:2.11.1" @@ -19095,6 +19412,447 @@ __metadata: languageName: node linkType: hard +"rc-cascader@npm:~3.11.2": + version: 3.11.2 + resolution: "rc-cascader@npm:3.11.2" + dependencies: + "@babel/runtime": ^7.12.5 + array-tree-filter: ^2.1.0 + classnames: ^2.3.1 + rc-select: ~14.4.0 + rc-tree: ~5.7.0 + rc-util: ^5.6.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 7988047e4493e76180c65974124f40c88b96ddd4597a02ca23ee9c25fc9e628edecbf2b715125f6e0d8bdc7b78e6fdf97c00b380763c2cb492263f2a21054b63 + languageName: node + linkType: hard + +"rc-checkbox@npm:~3.0.0": + version: 3.0.1 + resolution: "rc-checkbox@npm:3.0.1" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: ^2.3.2 + rc-util: ^5.25.2 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 5ac8529d75428bd83ad777b1c36e5df8acfff60205a5f95a97b44e77d614f21aa6dca3b04464f33c81f5a2a59e36b459f616aa981ca2f49c7a004a5a21a414c4 + languageName: node + linkType: hard + +"rc-collapse@npm:~3.5.2": + version: 3.5.2 + resolution: "rc-collapse@npm:3.5.2" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: 2.x + rc-motion: ^2.3.4 + rc-util: ^5.27.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 92e410ccda4051558cd193f709bedf4afd313f5c17dd1ca583731a3a162ab74f900518971db0eef65bd30915990403e320cc3f8bdb2ce1a4d6b594e4b1d9a6bf + languageName: node + linkType: hard + +"rc-dialog@npm:~9.1.0": + version: 9.1.0 + resolution: "rc-dialog@npm:9.1.0" + dependencies: + "@babel/runtime": ^7.10.1 + "@rc-component/portal": ^1.0.0-8 + classnames: ^2.2.6 + rc-motion: ^2.3.0 + rc-util: ^5.21.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 93d60c93367a19981d5ad2b7ff5cbfc538ead313ccef4ca257e8e8675e49b5e5a963d188518a6f58005c480e1d75c341f22887893e441d5899e4e6bb087eebe0 + languageName: node + linkType: hard + +"rc-drawer@npm:~6.1.1": + version: 6.1.5 + resolution: "rc-drawer@npm:6.1.5" + dependencies: + "@babel/runtime": ^7.10.1 + "@rc-component/portal": ^1.0.0-6 + classnames: ^2.2.6 + rc-motion: ^2.6.1 + rc-util: ^5.21.2 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: c2cca68c2f07533fde491b5119d3c6c43f5370bf71b53eea1c9be4d1e331b1edf3f40634a24ecf9bffbf847de2c4e4d7b3c91dfab869023c1a7be1ae631cd209 + languageName: node + linkType: hard + +"rc-dropdown@npm:~4.1.0": + version: 4.1.0 + resolution: "rc-dropdown@npm:4.1.0" + dependencies: + "@babel/runtime": ^7.18.3 + "@rc-component/trigger": ^1.7.0 + classnames: ^2.2.6 + rc-util: ^5.17.0 + peerDependencies: + react: ">=16.11.0" + react-dom: ">=16.11.0" + checksum: 2f7cbd7e880dcedc2c77a234f1790af6c0954ef5920dd8086702bf4ae590271f0de320f5d43e64b57cef1dab62e698cbd3e1d5664977f855600b4f2ef28f31f8 + languageName: node + linkType: hard + +"rc-field-form@npm:~1.31.0": + version: 1.31.0 + resolution: "rc-field-form@npm:1.31.0" + dependencies: + "@babel/runtime": ^7.18.0 + async-validator: ^4.1.0 + rc-util: ^5.8.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 27c217e585e6384d80a52cee84c332d23f62741a2b72e3a3365fdc88b0a739ec85645d1821bd802cad954f0c14514d828c9fb0f41b8a92395532af8fe83c42a7 + languageName: node + linkType: hard + +"rc-image@npm:~5.16.0": + version: 5.16.0 + resolution: "rc-image@npm:5.16.0" + dependencies: + "@babel/runtime": ^7.11.2 + "@rc-component/portal": ^1.0.2 + classnames: ^2.2.6 + rc-dialog: ~9.1.0 + rc-motion: ^2.6.2 + rc-util: ^5.0.6 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 6ae5328ea4dd6518032edd560ea76643223610a759a3f0a3d21afa3100be68c0ad3dd19173ef3d2b4eed11d7ced27f9de1ee2926b4883baf3bc87f996b90c306 + languageName: node + linkType: hard + +"rc-input-number@npm:~7.4.0": + version: 7.4.2 + resolution: "rc-input-number@npm:7.4.2" + dependencies: + "@babel/runtime": ^7.10.1 + "@rc-component/mini-decimal": ^1.0.1 + classnames: ^2.2.5 + rc-util: ^5.28.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 60bae7b3a97f66bcaa1964b326205c23320ad411856f8a60afff30d7e409f049195a0b452ee758e5328d829471ed5f471aac32446ccc8223d71ea72c125cfb72 + languageName: node + linkType: hard + +"rc-input@npm:~1.0.0, rc-input@npm:~1.0.4": + version: 1.0.4 + resolution: "rc-input@npm:1.0.4" + dependencies: + "@babel/runtime": ^7.11.1 + classnames: ^2.2.1 + rc-util: ^5.18.1 + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: d09ee654b4c68b4328ff2231d4b74c48ea08b0337895a8e07504f8a3a5b34a1f62c4c179792452834218c8ff72bc23c779d4865b670e1234b982b596a032425a + languageName: node + linkType: hard + +"rc-mentions@npm:~2.2.0": + version: 2.2.0 + resolution: "rc-mentions@npm:2.2.0" + dependencies: + "@babel/runtime": ^7.10.1 + "@rc-component/trigger": ^1.5.0 + classnames: ^2.2.6 + rc-input: ~1.0.0 + rc-menu: ~9.8.0 + rc-textarea: ~1.2.0 + rc-util: ^5.22.5 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 689f8703ea72eed3d6826f7b78d725a66599968a69db3a1871966fc6354589935da00cae742373d13f28fcc5c5827da46c891a5d28744b39f6dda9148d592094 + languageName: node + linkType: hard + +"rc-menu@npm:~9.8.0, rc-menu@npm:~9.8.3": + version: 9.8.4 + resolution: "rc-menu@npm:9.8.4" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: 2.x + rc-motion: ^2.4.3 + rc-overflow: ^1.2.8 + rc-trigger: ^5.1.2 + rc-util: ^5.27.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: f1bc9dada326aca76591e40c820e4fc958170ae618a3bd196e075ef5c7c271c1ff7260c490f8d589662ed1b284c1aebb286e51b7881ce5b5832e419ea639f863 + languageName: node + linkType: hard + +"rc-motion@npm:^2.0.0, rc-motion@npm:^2.0.1, rc-motion@npm:^2.3.0, rc-motion@npm:^2.3.4, rc-motion@npm:^2.4.3, rc-motion@npm:^2.4.4, rc-motion@npm:^2.6.0, rc-motion@npm:^2.6.1, rc-motion@npm:^2.6.2, rc-motion@npm:^2.7.3": + version: 2.7.3 + resolution: "rc-motion@npm:2.7.3" + dependencies: + "@babel/runtime": ^7.11.1 + classnames: ^2.2.1 + rc-util: ^5.21.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 8576a01f29d2f7ba09b972b528c618823091374f7fed71f1081fb44c97776ef748a5c7245dd83c0b2014d01ec0d8fd34c3e453ab71a28eb1dbe0d66a5f78ec5a + languageName: node + linkType: hard + +"rc-notification@npm:~5.0.4": + version: 5.0.4 + resolution: "rc-notification@npm:5.0.4" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: 2.x + rc-motion: ^2.6.0 + rc-util: ^5.20.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 833dcf158ebabfea79b1879a7a57ddd9b454a723569e7db78f104bace8cf6adc4c28fc14ab37b0d64b2b5e28fa136105c1cea002afa9ab0559d799aead3a7196 + languageName: node + linkType: hard + +"rc-overflow@npm:^1.0.0, rc-overflow@npm:^1.2.8": + version: 1.3.0 + resolution: "rc-overflow@npm:1.3.0" + dependencies: + "@babel/runtime": ^7.11.1 + classnames: ^2.2.1 + rc-resize-observer: ^1.0.0 + rc-util: ^5.19.2 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 629b1c17c03c1fe84683fcc30d7443b9179313d76749c4f4da031e808884d9b5a5a0b9ee7f2ee88484ce68a20d27a44243684877c333546ca3b63b1b1719ffdd + languageName: node + linkType: hard + +"rc-pagination@npm:~3.3.1": + version: 3.3.1 + resolution: "rc-pagination@npm:3.3.1" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: ^2.2.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: c9b806b31fc401ad55cf9a99c0b9942dadebe3b571c11bfbf165f2cb75ff6e4673a90effab71a86cd3abe84cd84d681432c1bbde37864000196ccacc9c2ec749 + languageName: node + linkType: hard + +"rc-picker@npm:~3.7.4": + version: 3.7.4 + resolution: "rc-picker@npm:3.7.4" + dependencies: + "@babel/runtime": ^7.10.1 + "@rc-component/trigger": ^1.5.0 + classnames: ^2.2.1 + rc-util: ^5.30.0 + peerDependencies: + date-fns: ">= 2.x" + dayjs: ">= 1.x" + luxon: ">= 3.x" + moment: ">= 2.x" + react: ">=16.9.0" + react-dom: ">=16.9.0" + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + checksum: 71f699c48aa7374249843f3308f3286fd4474eecf7e535a6708a82330d95e6657fa266aeeb454391c7a01206a5c0620b720fac70fa6829249e9489c105f6b798 + languageName: node + linkType: hard + +"rc-progress@npm:~3.4.1": + version: 3.4.1 + resolution: "rc-progress@npm:3.4.1" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: ^2.2.6 + rc-util: ^5.16.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 0a54feb6b878d25612fddc30f0eaef0a255e6454ee41deab2703781724f919c244b535d31f0d3b68646dd0e1cece721e3e96578d7492d11ce0c46393d50d035a + languageName: node + linkType: hard + +"rc-rate@npm:~2.10.0": + version: 2.10.0 + resolution: "rc-rate@npm:2.10.0" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: ^2.2.5 + rc-util: ^5.0.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 1810bfd7874021aa89e6b8ff2fb22727a806564d7043ff3d9c69605164e5d9b209d81a9f47b39ddd9d14693329bb778f172944b8a921fed2165199afebc1fc51 + languageName: node + linkType: hard + +"rc-resize-observer@npm:^1.0.0, rc-resize-observer@npm:^1.1.0, rc-resize-observer@npm:^1.2.0, rc-resize-observer@npm:^1.3.1": + version: 1.3.1 + resolution: "rc-resize-observer@npm:1.3.1" + dependencies: + "@babel/runtime": ^7.20.7 + classnames: ^2.2.1 + rc-util: ^5.27.0 + resize-observer-polyfill: ^1.5.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: eeed855ad984923cdf2f62b32c013f6b33345419c458e7e0bb8bbb5e6f049d53379ae2a471510fc866a0606ffb1f842033cfd974b4d53be016fa7fbc9e78bb2d + languageName: node + linkType: hard + +"rc-segmented@npm:~2.2.0": + version: 2.2.0 + resolution: "rc-segmented@npm:2.2.0" + dependencies: + "@babel/runtime": ^7.11.1 + classnames: ^2.2.1 + rc-motion: ^2.4.4 + rc-util: ^5.17.0 + peerDependencies: + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 44612698c97454ed5c00ffcc7096cd2258eb1072e5c4429993ad016ee7248c79a68eac2830a55b7c0be5e452fe7e5fb05a07f4cb8d130e74f6000a0844bf4055 + languageName: node + linkType: hard + +"rc-select@npm:~14.4.0, rc-select@npm:~14.4.3": + version: 14.4.3 + resolution: "rc-select@npm:14.4.3" + dependencies: + "@babel/runtime": ^7.10.1 + "@rc-component/trigger": ^1.5.0 + classnames: 2.x + rc-motion: ^2.0.1 + rc-overflow: ^1.0.0 + rc-util: ^5.16.1 + rc-virtual-list: ^3.4.13 + peerDependencies: + react: "*" + react-dom: "*" + checksum: 38d267e8f8d4854bb568d9a8527cb7753a4fe34d0b7a428f56aca120568715cb61e75627527e7cb7a97257093c5d0893a99c39f5bb4f6edab97313c15123e054 + languageName: node + linkType: hard + +"rc-slider@npm:~10.1.0": + version: 10.1.1 + resolution: "rc-slider@npm:10.1.1" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: ^2.2.5 + rc-util: ^5.27.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: d2dbf3f48fc4b4cfb45c68284fda6a10503708256bf78d42178f0781bb2a9b7c9fc6cf7bd9bb6fabc02005e2819c2ba5eb6b3fcdd357cf253aee83b701c53897 + languageName: node + linkType: hard + +"rc-steps@npm:~6.0.0": + version: 6.0.0 + resolution: "rc-steps@npm:6.0.0" + dependencies: + "@babel/runtime": ^7.16.7 + classnames: ^2.2.3 + rc-util: ^5.16.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: b8feea625679cfc530a5a8ce348ff93e4e6d43bf7e10acf23487813a81fa09696c457de6109a82962b5f807dcffe4aad5c973452c278d1aa0b9726505a780672 + languageName: node + linkType: hard + +"rc-switch@npm:~4.1.0": + version: 4.1.0 + resolution: "rc-switch@npm:4.1.0" + dependencies: + "@babel/runtime": ^7.21.0 + classnames: ^2.2.1 + rc-util: ^5.30.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 5ce5b1cadea6e7cd38c0725456ea15c39748fefc39576f7c9288192e69b7f426c4ac7627e266369ece164f281ae08e14ab8f54d4d7858c8bd20707b296980743 + languageName: node + linkType: hard + +"rc-table@npm:~7.32.1": + version: 7.32.1 + resolution: "rc-table@npm:7.32.1" + dependencies: + "@babel/runtime": ^7.10.1 + "@rc-component/context": ^1.3.0 + classnames: ^2.2.5 + rc-resize-observer: ^1.1.0 + rc-util: ^5.27.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: c68a0e56268fb1859cf88ca5b8494de6d2201a5ceae432f9035b67ff2f5a1d80707f14e4b7054936afb6aec322c7b2f9f2c0b4af2ebb2d99c4a8d2ad17fa5e97 + languageName: node + linkType: hard + +"rc-tabs@npm:~12.6.0": + version: 12.6.0 + resolution: "rc-tabs@npm:12.6.0" + dependencies: + "@babel/runtime": ^7.11.2 + classnames: 2.x + rc-dropdown: ~4.1.0 + rc-menu: ~9.8.0 + rc-motion: ^2.6.2 + rc-resize-observer: ^1.0.0 + rc-util: ^5.16.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 3025286cbc493ad31cc5844564c87d997848a074488510a430e8cb5defcc29e0182176686967a682ba388f27ac62a30dc133d8d9b1ea5880e02d352309e78d04 + languageName: node + linkType: hard + +"rc-textarea@npm:~1.2.0, rc-textarea@npm:~1.2.2": + version: 1.2.3 + resolution: "rc-textarea@npm:1.2.3" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: ^2.2.1 + rc-input: ~1.0.4 + rc-resize-observer: ^1.0.0 + rc-util: ^5.27.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: e7ffd8c2797abf149b752205ddf76451543947764f3a82460579710bc1f520ca0fe7de064ded4de3937e58759212bd5de4cd8b565b4c152628e4c5258b649ed9 + languageName: node + linkType: hard + "rc-time-picker@npm:^3.7.3": version: 3.7.3 resolution: "rc-time-picker@npm:3.7.3" @@ -19109,6 +19867,52 @@ __metadata: languageName: node linkType: hard +"rc-tooltip@npm:~6.0.0": + version: 6.0.1 + resolution: "rc-tooltip@npm:6.0.1" + dependencies: + "@babel/runtime": ^7.11.2 + "@rc-component/trigger": ^1.0.4 + classnames: ^2.3.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 7d47f4c7c85a0355d2473cbca09bc2b8f69f4842a228044df37955cb85f3d2a0c2ed729938b013a34ea21161d33bc615f4afd1d4bfcbefa93419e0b30f239da8 + languageName: node + linkType: hard + +"rc-tree-select@npm:~5.8.0": + version: 5.8.0 + resolution: "rc-tree-select@npm:5.8.0" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: 2.x + rc-select: ~14.4.0 + rc-tree: ~5.7.0 + rc-util: ^5.16.1 + peerDependencies: + react: "*" + react-dom: "*" + checksum: 8036a13ea27b7530da56d14ecd66f301f482ac3e90bd6f6c0aac7a4a1356e019c12ed39d4c6d993069b0b41d0e766f30762e1b9e24ba0ba9a9c43fb4acc66c94 + languageName: node + linkType: hard + +"rc-tree@npm:~5.7.0": + version: 5.7.3 + resolution: "rc-tree@npm:5.7.3" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: 2.x + rc-motion: ^2.0.1 + rc-util: ^5.16.1 + rc-virtual-list: ^3.4.8 + peerDependencies: + react: "*" + react-dom: "*" + checksum: 54a33c088f6a58b37c1e99771a5d3590939a15469e14835f5fced7bed31ce0834f3cac997b84c429450d1bc00beefdb158c2eba97399480676d2faa5aac57500 + languageName: node + linkType: hard + "rc-trigger@npm:^2.2.0": version: 2.6.5 resolution: "rc-trigger@npm:2.6.5" @@ -19124,6 +19928,36 @@ __metadata: languageName: node linkType: hard +"rc-trigger@npm:^5.1.2": + version: 5.3.4 + resolution: "rc-trigger@npm:5.3.4" + dependencies: + "@babel/runtime": ^7.18.3 + classnames: ^2.2.6 + rc-align: ^4.0.0 + rc-motion: ^2.0.0 + rc-util: ^5.19.2 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 1f13cb5ae5b8925ec77aa3f973dbec06420be0bdb7dbfabc2ca28bb48ded8ee3a9c271e436aca7a4222a458b53110591051552714686a742cbb6c871e4440609 + languageName: node + linkType: hard + +"rc-upload@npm:~4.3.0": + version: 4.3.4 + resolution: "rc-upload@npm:4.3.4" + dependencies: + "@babel/runtime": ^7.18.3 + classnames: ^2.2.5 + rc-util: ^5.2.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 2c401816dfa6c7907ee7756588129ea09211449b966b48d73365b270f83f54015585360304cf3bb09b2f399464bc4493f490c1e6c854a98ec6a206d07edc55c4 + languageName: node + linkType: hard + "rc-util@npm:^4.0.4, rc-util@npm:^4.15.3, rc-util@npm:^4.4.0": version: 4.21.1 resolution: "rc-util@npm:4.21.1" @@ -19137,6 +19971,34 @@ __metadata: languageName: node linkType: hard +"rc-util@npm:^5.0.1, rc-util@npm:^5.0.6, rc-util@npm:^5.15.0, rc-util@npm:^5.16.0, rc-util@npm:^5.16.1, rc-util@npm:^5.17.0, rc-util@npm:^5.18.1, rc-util@npm:^5.19.2, rc-util@npm:^5.2.0, rc-util@npm:^5.20.1, rc-util@npm:^5.21.0, rc-util@npm:^5.21.2, rc-util@npm:^5.22.5, rc-util@npm:^5.24.4, rc-util@npm:^5.25.2, rc-util@npm:^5.26.0, rc-util@npm:^5.27.0, rc-util@npm:^5.27.1, rc-util@npm:^5.28.0, rc-util@npm:^5.29.2, rc-util@npm:^5.30.0, rc-util@npm:^5.6.1, rc-util@npm:^5.8.0, rc-util@npm:^5.9.4": + version: 5.30.0 + resolution: "rc-util@npm:5.30.0" + dependencies: + "@babel/runtime": ^7.18.3 + react-is: ^16.12.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: c4ad4a1225833785260dac3210573290a991281eda923d6f58c3a63d2cbcd04792ab60da86d4652a172edcf6f01901c3a67198490bacbfd03b49e70d314bc4b7 + languageName: node + linkType: hard + +"rc-virtual-list@npm:^3.4.13, rc-virtual-list@npm:^3.4.8": + version: 3.4.13 + resolution: "rc-virtual-list@npm:3.4.13" + dependencies: + "@babel/runtime": ^7.20.0 + classnames: ^2.2.6 + rc-resize-observer: ^1.0.0 + rc-util: ^5.15.0 + peerDependencies: + react: "*" + react-dom: "*" + checksum: 92694688f25fe22fedec5238c1e301bc319d35fcfa0edf54e758761e4f0155ed05644947bf6393d09c8a1cbc13ae07d9cfbd9a4b31aa441fb73ec30b5bf858e4 + languageName: node + linkType: hard + "rc@npm:^1.0.1, rc@npm:^1.1.6": version: 1.2.8 resolution: "rc@npm:1.2.8" @@ -19160,7 +20022,7 @@ __metadata: languageName: node linkType: hard -"react-async-script@npm:^1.0.0": +"react-async-script@npm:^1.1.1": version: 1.2.0 resolution: "react-async-script@npm:1.2.0" dependencies: @@ -19331,15 +20193,15 @@ __metadata: languageName: node linkType: hard -"react-google-recaptcha@npm:^1.1.0": - version: 1.1.0 - resolution: "react-google-recaptcha@npm:1.1.0" +"react-google-recaptcha@npm:^2.1.0": + version: 2.1.0 + resolution: "react-google-recaptcha@npm:2.1.0" dependencies: prop-types: ^15.5.0 - react-async-script: ^1.0.0 + react-async-script: ^1.1.1 peerDependencies: react: ">=16.4.1" - checksum: 1d6fc0df8c2ed9c1fd9291998c3e0539940790b95f08b04165fc83712ef14fcbe911a9373af1df8ab4800f4851da810a8af902307289139fa87ce9f25de81a90 + checksum: c2f38cedd50ee90711e510cbc5c57e2810a9c5aa3c8508415fae635f9f66ad0ef571da30770b87bb6ab21dd9b5ccd69622624691ec2f26cdfc5f480d0e11d24b languageName: node linkType: hard @@ -20252,6 +21114,13 @@ __metadata: languageName: node linkType: hard +"resize-observer-polyfill@npm:^1.5.1": + version: 1.5.1 + resolution: "resize-observer-polyfill@npm:1.5.1" + checksum: 5e882475067f0b97dc07e0f37c3e335ac5bc3520d463f777cec7e894bb273eddbfecb857ae668e6fb6881fd6f6bb7148246967172139302da50fa12ea3a15d95 + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -20701,6 +21570,15 @@ __metadata: languageName: node linkType: hard +"scroll-into-view-if-needed@npm:^3.0.3": + version: 3.0.10 + resolution: "scroll-into-view-if-needed@npm:3.0.10" + dependencies: + compute-scroll-into-view: ^3.0.2 + checksum: 8bce433c0139cfd74d5b784113251f1c1783bcd4152c2f3a7e4ca6ff73d644eafd891747bdfb02456d7437835991b142ddd2cfa8c6ef78dd0d7fd6eb4c7c70b4 + languageName: node + linkType: hard + "sdp@npm:^2.12.0, sdp@npm:^2.6.0": version: 2.12.0 resolution: "sdp@npm:2.12.0" @@ -21606,6 +22484,13 @@ __metadata: languageName: node linkType: hard +"string-convert@npm:^0.2.0": + version: 0.2.1 + resolution: "string-convert@npm:0.2.1" + checksum: 00673ed8a3106137395436537ace7d3672c91a3290da73466055daa0134331dc84bc58c54ba2d2ea40711adc5744426d3c8239dbfc30290438fa3e9ff65db528 + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -21946,6 +22831,13 @@ __metadata: languageName: node linkType: hard +"stylis@npm:^4.0.13": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: a7128ad5a8ed72652c6eba46bed4f416521bc9745a460ef5741edc725252cebf36ee45e33a8615a7057403c93df0866ab9ee955960792db210bb80abd5ac6543 + languageName: node + linkType: hard + "sugarss@npm:^4.0.1": version: 4.0.1 resolution: "sugarss@npm:4.0.1" @@ -22318,6 +23210,13 @@ __metadata: languageName: node linkType: hard +"throttle-debounce@npm:^5.0.0": + version: 5.0.0 + resolution: "throttle-debounce@npm:5.0.0" + checksum: 666d5b73bfa7340c5186b244416ce965cd276e4bc91a12453ff6eddcc62f02a19c6f532305601d90c809dd5acbd45dd6eea5eb43e0a879a0b3d66d0886a4d8d2 + languageName: node + linkType: hard + "throttleit@npm:^1.0.0": version: 1.0.0 resolution: "throttleit@npm:1.0.0"