diff --git a/.eslintrc.json b/.eslintrc.json
index b2f1a97..bdfb56f 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -23,6 +23,7 @@
"object-curly-spacing": ["error", "always"],
"semi": ["error", "never"],
"max-len": ["error", { "ignoreComments": true, "code": 120 }],
- "react/prop-types": "off"
+ "react/prop-types": "off",
+ "react/display-name": "off"
}
}
diff --git a/app/javascript/src/components/CandidateCard.jsx b/app/javascript/src/components/CandidateCard.jsx
index 06efae2..84a1999 100644
--- a/app/javascript/src/components/CandidateCard.jsx
+++ b/app/javascript/src/components/CandidateCard.jsx
@@ -1,13 +1,32 @@
import React from 'react'
+import { Card, Avatar, Flex, Typography } from 'antd'
+import { GiftOutlined, MailOutlined, UserOutlined } from '@ant-design/icons'
-const CandidateCard = ({ candidate }) => {
+const { Title } = Typography
+
+const CandidateCard = ({ candidate, loading }) => {
return (
-
-
-
{candidate.name}
-
{candidate.email}
-
-
+
+
+ } />
+
+
+ {candidate.name}
+
+
+
+
+ {candidate.email}
+
+
+
+
+
+ {candidate.birthdate?.format('YYYY/MM/DD')}
+
+
+
+
)
}
diff --git a/app/javascript/src/i18n/en.json b/app/javascript/src/i18n/en.json
index 2452fb8..c991bdc 100644
--- a/app/javascript/src/i18n/en.json
+++ b/app/javascript/src/i18n/en.json
@@ -1,4 +1,7 @@
{
"welcomeToHaistack": "Welcome to Haistack",
- "candidates": "Candidates"
+ "candidates": "Candidates",
+ "candidate": {
+ "candidateDetails": "Candidate Details"
+ }
}
diff --git a/app/javascript/src/main.css b/app/javascript/src/main.css
index 2aec1ad..e29c0f5 100644
--- a/app/javascript/src/main.css
+++ b/app/javascript/src/main.css
@@ -1,3 +1,48 @@
-.main {
- padding: 20px;
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
}
diff --git a/app/javascript/src/repositories/candidates.js b/app/javascript/src/repositories/candidates.js
index c24f7cd..2297b54 100644
--- a/app/javascript/src/repositories/candidates.js
+++ b/app/javascript/src/repositories/candidates.js
@@ -13,3 +13,13 @@ export const fetchCandidates = async () => {
meta: response.data?.meta,
}
}
+
+export const getCandidate = async (id) => {
+ const response = await get(`${BASE_URL}/api/v1/candidates/${id}`)
+ const candidate = createCandidate(response.data)
+
+ return {
+ candidate,
+ status: response.status,
+ }
+}
diff --git a/app/javascript/src/routes.js b/app/javascript/src/routes.js
index 1bf2557..c96e34b 100644
--- a/app/javascript/src/routes.js
+++ b/app/javascript/src/routes.js
@@ -1,6 +1,6 @@
import React from 'react'
import { createBrowserRouter } from 'react-router-dom'
-import { Home, Candidates } from '@/views/index.js'
+import { Home, Candidate } from '@/views/index.js'
export const router = createBrowserRouter([
{
@@ -8,7 +8,12 @@ export const router = createBrowserRouter([
element: ,
},
{
- path: '/candidates',
- element: ,
+ path: 'candidates',
+ children: [
+ {
+ path: ':id',
+ element: ,
+ },
+ ],
},
])
diff --git a/app/javascript/src/tests/components/CandidateCard.spec.jsx b/app/javascript/src/tests/components/CandidateCard.spec.jsx
new file mode 100644
index 0000000..bf55402
--- /dev/null
+++ b/app/javascript/src/tests/components/CandidateCard.spec.jsx
@@ -0,0 +1,38 @@
+import { expect, describe, it, vi, afterEach } from 'vitest'
+import { render, cleanup } from '@testing-library/react'
+import CandidateCard from '@/components/CandidateCard.jsx'
+import createCandidate from '@/models/candidate'
+
+vi.mock('antd', () => ({
+ Card: ({ children }) => {children}
,
+ Avatar: ({ children }) => {children}
,
+ Flex: ({ children }) => {children}
,
+ Typography: {
+ Title: ({ children }) => {children}
,
+ },
+}))
+
+describe('CandidateCard', () => {
+ afterEach(cleanup)
+
+ const candidate = createCandidate({
+ id: 1,
+ name: 'John Doe',
+ email: 'john@doe.com',
+ birthdate: '1990-01-01',
+ })
+
+ it('renders a card with the candidate information', () => {
+ const { getByText } = render()
+
+ expect(getByText('John Doe')).toBeTruthy()
+ expect(getByText('john@doe.com')).toBeTruthy()
+ expect(getByText('1990/01/01')).toBeTruthy()
+ })
+
+ it('renders a link to send an email to the candidate', () => {
+ const { getByTestId } = render()
+
+ expect(getByTestId('email-link').getAttribute('href')).toBe('mailto:john@doe.com')
+ })
+})
diff --git a/app/javascript/src/tests/repositories/candidates.spec.js b/app/javascript/src/tests/repositories/candidates.spec.js
index 3dd713a..b77bdfc 100644
--- a/app/javascript/src/tests/repositories/candidates.spec.js
+++ b/app/javascript/src/tests/repositories/candidates.spec.js
@@ -1,6 +1,6 @@
import { describe, it, expect, vi } from 'vitest'
import { get } from '@/lib/request.js'
-import { fetchCandidates } from '@/repositories/candidates.js'
+import { fetchCandidates, getCandidate } from '@/repositories/candidates.js'
vi.mock('@/lib/request.js', () => ({
get: vi.fn(),
@@ -8,52 +8,90 @@ vi.mock('@/lib/request.js', () => ({
vi.mock('@/models/candidate.js', () => ({ default: () => 'createCandidate' }))
-describe('fetchCandidates', () => {
- it('returns candidates and status', async () => {
- const candidates = [{ id: 1, name: 'John Doe' }]
- const response = { data: { candidates }, status: 200 }
- get.mockResolvedValue(response)
-
- const result = await fetchCandidates()
-
- expect(result.candidates).toEqual(['createCandidate'])
- expect(result.status).toBe(200)
- })
-
- describe('when response has meta', () => {
- it('returns meta', async () => {
+describe('candidates repository', () => {
+ describe('fetchCandidates', () => {
+ it('returns candidates and status', async () => {
const candidates = [{ id: 1, name: 'John Doe' }]
- const meta = { total: 1 }
- const response = { data: { candidates, meta }, status: 200 }
+ const response = { data: { candidates }, status: 200 }
get.mockResolvedValue(response)
const result = await fetchCandidates()
- expect(result.meta).toEqual(meta)
+ expect(result.candidates).toEqual(['createCandidate'])
+ expect(result.status).toBe(200)
})
- })
- describe('when response has no candidates', () => {
- it('returns empty array', async () => {
- const response = { data: {}, status: 200 }
- get.mockResolvedValue(response)
+ describe('when response has meta', () => {
+ it('returns meta', async () => {
+ const candidates = [{ id: 1, name: 'John Doe' }]
+ const meta = { total: 1 }
+ const response = { data: { candidates, meta }, status: 200 }
+ get.mockResolvedValue(response)
- const result = await fetchCandidates()
+ const result = await fetchCandidates()
- expect(result.candidates).toEqual([])
+ expect(result.meta).toEqual(meta)
+ })
+ })
+
+ describe('when response has no candidates', () => {
+ it('returns empty array', async () => {
+ const response = { data: {}, status: 200 }
+ get.mockResolvedValue(response)
+
+ const result = await fetchCandidates()
+
+ expect(result.candidates).toEqual([])
+ })
+ })
+
+ describe('when response is not successful', () => {
+ it('returns status', async () => {
+ const response = { data: {}, status: 500 }
+ get.mockResolvedValue(response)
+
+ const result = await fetchCandidates()
+
+ expect(result.candidates).toEqual([])
+ expect(result.status).toBe(500)
+ })
})
})
- describe('when response is not successful', () => {
- it('returns status', async () => {
- const response = { data: {}, status: 500 }
+ describe('getCandidate', () => {
+ it('returns candidate and status', async () => {
+ const candidate = { id: 1, name: 'John Doe' }
+ const response = { data: candidate, status: 200 }
get.mockResolvedValue(response)
- const result = await fetchCandidates()
+ const result = await getCandidate(1)
+
+ expect(result.candidate).toEqual('createCandidate')
+ expect(result.status).toBe(200)
+ })
+
+ describe('when response is not successful', () => {
+ it('returns status', async () => {
+ const response = { data: {}, status: 500 }
+ get.mockResolvedValue(response)
- expect(result.candidates).toEqual([])
- expect(result.status).toBe(500)
+ const result = await getCandidate(1)
+
+ expect(result.candidate).toEqual('createCandidate')
+ expect(result.status).toBe(500)
+ })
+ })
+
+ describe('when response has no data', () => {
+ it('returns status', async () => {
+ const response = { status: 404 }
+ get.mockResolvedValue(response)
+
+ const result = await getCandidate(1)
+
+ expect(result.candidate).toEqual('createCandidate')
+ expect(result.status).toBe(404)
+ })
})
})
})
-
diff --git a/app/javascript/src/tests/views/Candidate.spec.jsx b/app/javascript/src/tests/views/Candidate.spec.jsx
new file mode 100644
index 0000000..4f94881
--- /dev/null
+++ b/app/javascript/src/tests/views/Candidate.spec.jsx
@@ -0,0 +1,52 @@
+import { expect, describe, it, vi, afterEach } from 'vitest'
+import { render, cleanup } from '@testing-library/react'
+import Candidate from '@/views/Candidate.jsx'
+import { getCandidate } from '@/repositories/candidates.js'
+import { useParams } from 'react-router-dom'
+
+vi.mock('antd', () => ({
+ Typography: {
+ Title: ({ children }) => {children}
,
+ },
+}))
+
+vi.mock('@/components/CandidateCard', () => ({
+ default: () => CandidateCard
,
+}))
+
+vi.mock('react-router-dom', () => ({
+ useParams: vi.fn(() => ({ id: 1 })),
+}))
+
+vi.mock('react-i18next', () => ({
+ useTranslation: () => ({ t: (key) => key }),
+}))
+
+vi.mock('@/repositories/candidates.js', () => ({
+ getCandidate: vi.fn(() =>({
+ candidate: {
+ id: 1,
+ name: 'John Doe',
+ email: 'john@doe.com',
+ birthdate: '1990-01-01',
+ },
+ })),
+}))
+
+describe('CandidateCard', () => {
+ afterEach(cleanup)
+
+ it('renders the title', () => {
+ const { getByText } = render()
+
+ expect(getByText('candidate.candidateDetails')).toBeTruthy()
+ })
+
+ it('calls the getCandidate function with the id', () => {
+ useParams.mockReturnValue({ id: 2 })
+
+ render()
+
+ expect(getCandidate).toHaveBeenCalledWith(2)
+ })
+})
diff --git a/app/javascript/src/views/Candidate.jsx b/app/javascript/src/views/Candidate.jsx
new file mode 100644
index 0000000..3a810bf
--- /dev/null
+++ b/app/javascript/src/views/Candidate.jsx
@@ -0,0 +1,37 @@
+import React, { useState, useEffect } from 'react'
+import { getCandidate } from '@/repositories/candidates.js'
+import CandidateCard from '@/components/CandidateCard'
+import { useTranslation } from 'react-i18next'
+import { useParams } from 'react-router-dom'
+import { Typography } from 'antd'
+
+const { Title } = Typography
+
+const Candidate = () => {
+ const [candidate, setCandidate] = useState([])
+ const [loading, setLoading] = useState(true)
+ const { t } = useTranslation()
+ const { id } = useParams()
+
+ useEffect(() => {
+ const fetchData = async () => {
+ const response = await getCandidate(id)
+
+ setCandidate(response.candidate)
+ setLoading(false)
+ }
+
+ fetchData()
+ }, [])
+
+ return (
+
+
+ {t('candidate.candidateDetails')}
+
+
+
+ )
+}
+
+export default Candidate
diff --git a/app/javascript/src/views/index.js b/app/javascript/src/views/index.js
index 5ca20fb..064e736 100644
--- a/app/javascript/src/views/index.js
+++ b/app/javascript/src/views/index.js
@@ -1,2 +1,3 @@
export { default as Candidates } from './Candidates.jsx'
+export { default as Candidate } from './Candidate.jsx'
export { default as Home } from './Home.jsx'
diff --git a/babel.config.js b/babel.config.js
index 7e79b22..f18597f 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -23,7 +23,8 @@ module.exports = function(api) {
targets: {
node: 'current'
},
- modules: 'commonjs'
+ modules: 'commonjs',
+ include: [ 'proposal-optional-chaining' ]
},
'@babel/preset-react'
],
diff --git a/package.json b/package.json
index 7c1e059..87fa2a9 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,7 @@
"@babel/preset-react": "^7.18.6",
"@rails/ujs": "^6.0.0",
"@rails/webpacker": "5.4.4",
+ "antd": "^5.14.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"dayjs": "^1.11.10",
"i18next": "^23.8.2",
diff --git a/yarn.lock b/yarn.lock
index 52efdcf..f956bb3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15,6 +15,53 @@
"@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9"
+"@ant-design/colors@^7.0.0", "@ant-design/colors@^7.0.2":
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.0.2.tgz#c5c753a467ce8d86ba7ca4736d2c01f599bb5492"
+ integrity sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==
+ dependencies:
+ "@ctrl/tinycolor" "^3.6.1"
+
+"@ant-design/cssinjs@^1.18.4":
+ version "1.18.4"
+ resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.18.4.tgz#428411628f216acb71a2423d5332f6e6af7010b5"
+ integrity sha512-IrUAOj5TYuMG556C9gdbFuOrigyhzhU5ZYpWb3gYTxAwymVqRbvLzFCZg6OsjLBR6GhzcxYF3AhxKmjB+rA2xA==
+ dependencies:
+ "@babel/runtime" "^7.11.1"
+ "@emotion/hash" "^0.8.0"
+ "@emotion/unitless" "^0.7.5"
+ classnames "^2.3.1"
+ csstype "^3.1.3"
+ rc-util "^5.35.0"
+ stylis "^4.0.13"
+
+"@ant-design/icons-svg@^4.4.0":
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6"
+ integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==
+
+"@ant-design/icons@^5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.3.0.tgz#b4b57908eb4f4c31777424f10d341f6823a77d2b"
+ integrity sha512-69FgBsIkeCjw72ZU3fJpqjhmLCPrzKGEllbrAZK7MUdt1BrKsyG6A8YDCBPKea27UQ0tRXi33PcjR4tp/tEXMg==
+ dependencies:
+ "@ant-design/colors" "^7.0.0"
+ "@ant-design/icons-svg" "^4.4.0"
+ "@babel/runtime" "^7.11.2"
+ classnames "^2.2.6"
+ rc-util "^5.31.1"
+
+"@ant-design/react-slick@~1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-1.0.2.tgz#241bb412aeacf7ff5d50c61fa5db66773fde6b56"
+ integrity sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==
+ 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"
+
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.23.5":
version "7.23.5"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz"
@@ -1104,6 +1151,13 @@
resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz"
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
+"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9":
+ version "7.23.9"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7"
+ integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
"@babel/runtime@^7.12.5", "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
version "7.21.0"
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz"
@@ -1111,13 +1165,6 @@
dependencies:
regenerator-runtime "^0.13.11"
-"@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9":
- version "7.23.9"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7"
- integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==
- dependencies:
- regenerator-runtime "^0.14.0"
-
"@babel/template@^7.20.7", "@babel/template@^7.22.15", "@babel/template@^7.23.9":
version "7.23.9"
resolved "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz"
@@ -1157,6 +1204,21 @@
resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz"
integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==
+"@ctrl/tinycolor@^3.6.1":
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31"
+ integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==
+
+"@emotion/hash@^0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
+ integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
+
+"@emotion/unitless@^0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+ integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
+
"@esbuild/aix-ppc64@0.19.12":
version "0.19.12"
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f"
@@ -1474,6 +1536,72 @@
webpack-cli "^3.3.12"
webpack-sources "^1.4.3"
+"@rc-component/color-picker@~1.5.1":
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-1.5.1.tgz#5d41a10f96aab8eb020999bd397fb4419431814c"
+ integrity sha512-onyAFhWKXuG4P162xE+7IgaJkPkwM94XlOYnQuu69XdXWMfxpeFi6tpJBsieIMV7EnyLV5J3lDzdLiFeK0iEBA==
+ dependencies:
+ "@babel/runtime" "^7.23.6"
+ "@ctrl/tinycolor" "^3.6.1"
+ classnames "^2.2.6"
+ rc-util "^5.38.1"
+
+"@rc-component/context@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@rc-component/context/-/context-1.4.0.tgz#dc6fb021d6773546af8f016ae4ce9aea088395e8"
+ integrity sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ rc-util "^5.27.0"
+
+"@rc-component/mini-decimal@^1.0.1":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz#7b7a362b14a0a54cb5bc6fd2b82731f29f11d9b0"
+ integrity sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==
+ dependencies:
+ "@babel/runtime" "^7.18.0"
+
+"@rc-component/mutate-observer@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz#ee53cc88b78aade3cd0653609215a44779386fd8"
+ integrity sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==
+ dependencies:
+ "@babel/runtime" "^7.18.0"
+ classnames "^2.3.2"
+ rc-util "^5.24.4"
+
+"@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2", "@rc-component/portal@^1.1.0", "@rc-component/portal@^1.1.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.2.tgz#55db1e51d784e034442e9700536faaa6ab63fc71"
+ integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==
+ dependencies:
+ "@babel/runtime" "^7.18.0"
+ classnames "^2.3.2"
+ rc-util "^5.24.4"
+
+"@rc-component/tour@~1.12.3":
+ version "1.12.3"
+ resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.12.3.tgz#ede2ad9272126a2ea1429a6655ed09f4d065fbc9"
+ integrity sha512-U4mf1FiUxGCwrX4ed8op77Y8VKur+8Y/61ylxtqGbcSoh1EBC7bWd/DkLu0ClTUrKZInqEi1FL7YgFtnT90vHA==
+ 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"
+
+"@rc-component/trigger@^1.17.0", "@rc-component/trigger@^1.18.0", "@rc-component/trigger@^1.18.3", "@rc-component/trigger@^1.3.6", "@rc-component/trigger@^1.5.0", "@rc-component/trigger@^1.7.0":
+ version "1.18.3"
+ resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.18.3.tgz#b323b9e33f2700ca8d24a96f21401ab7b0eafdcd"
+ integrity sha512-Ksr25pXreYe1gX6ayZ1jLrOrl9OAUHUqnuhEx6MeHnNa1zVM5Y2Aj3Q35UrER0ns8D2cJYtmJtVli+i+4eKrvA==
+ dependencies:
+ "@babel/runtime" "^7.23.2"
+ "@rc-component/portal" "^1.1.0"
+ classnames "^2.3.2"
+ rc-motion "^2.0.0"
+ rc-resize-observer "^1.3.1"
+ rc-util "^5.38.0"
+
"@remix-run/router@1.15.0":
version "1.15.0"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.15.0.tgz#461a952c2872dd82c8b2e9b74c4dfaff569123e2"
@@ -2001,6 +2129,59 @@ ansi-styles@^5.0.0:
resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+antd@^5.14.0:
+ version "5.14.0"
+ resolved "https://registry.yarnpkg.com/antd/-/antd-5.14.0.tgz#a9e75aad7c1c6c1310504c845ef000f09172f9ac"
+ integrity sha512-LdRJnYd8dTykR2xr483zNE0mBKmWHMLqmjkfcX4otQRD0kaZjOwSmN74vMC70jnMM8oqhWILFjWy3dEy/E1W6w==
+ dependencies:
+ "@ant-design/colors" "^7.0.2"
+ "@ant-design/cssinjs" "^1.18.4"
+ "@ant-design/icons" "^5.3.0"
+ "@ant-design/react-slick" "~1.0.2"
+ "@ctrl/tinycolor" "^3.6.1"
+ "@rc-component/color-picker" "~1.5.1"
+ "@rc-component/mutate-observer" "^1.1.0"
+ "@rc-component/tour" "~1.12.3"
+ "@rc-component/trigger" "^1.18.3"
+ classnames "^2.5.1"
+ copy-to-clipboard "^3.3.3"
+ dayjs "^1.11.10"
+ qrcode.react "^3.1.0"
+ rc-cascader "~3.21.2"
+ rc-checkbox "~3.1.0"
+ rc-collapse "~3.7.2"
+ rc-dialog "~9.3.4"
+ rc-drawer "~7.0.0"
+ rc-dropdown "~4.1.0"
+ rc-field-form "~1.41.0"
+ rc-image "~7.5.1"
+ rc-input "~1.4.3"
+ rc-input-number "~9.0.0"
+ rc-mentions "~2.10.1"
+ rc-menu "~9.12.4"
+ rc-motion "^2.9.0"
+ rc-notification "~5.3.0"
+ rc-pagination "~4.0.4"
+ rc-picker "~4.0.0-alpha.43"
+ rc-progress "~3.5.1"
+ rc-rate "~2.12.0"
+ rc-resize-observer "^1.4.0"
+ rc-segmented "~2.3.0"
+ rc-select "~14.11.0"
+ rc-slider "~10.5.0"
+ rc-steps "~6.0.1"
+ rc-switch "~4.1.0"
+ rc-table "~7.39.0"
+ rc-tabs "~14.0.0"
+ rc-textarea "~1.6.3"
+ rc-tooltip "~6.1.3"
+ rc-tree "~5.8.5"
+ rc-tree-select "~5.17.0"
+ rc-upload "~4.5.2"
+ rc-util "^5.38.1"
+ scroll-into-view-if-needed "^3.1.0"
+ throttle-debounce "^5.0.0"
+
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"
@@ -2093,6 +2274,11 @@ array-includes@^3.0.3, array-includes@^3.1.1:
get-intrinsic "^1.2.1"
is-string "^1.0.7"
+array-tree-filter@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190"
+ integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==
+
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz"
@@ -2173,6 +2359,11 @@ async-limiter@~1.0.0:
resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+async-validator@^4.1.0:
+ version "4.2.5"
+ resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
+ integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
+
async@^2.6.4:
version "2.6.4"
resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz"
@@ -2761,6 +2952,11 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
+classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2, classnames@^2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
+ integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
+
clean-stack@^2.0.0:
version "2.2.0"
resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz"
@@ -2885,6 +3081,11 @@ compression@^1.7.4:
safe-buffer "5.1.2"
vary "~1.1.2"
+compute-scroll-into-view@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz#753f11d972596558d8fe7c6bcbc8497690ab4c87"
+ integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
@@ -2959,6 +3160,13 @@ copy-descriptor@^0.1.0:
resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==
+copy-to-clipboard@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0"
+ integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==
+ dependencies:
+ toggle-selection "^1.0.6"
+
core-js-compat@^3.25.1:
version "3.29.1"
resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz"
@@ -3259,7 +3467,7 @@ cssstyle@^4.0.1:
dependencies:
rrweb-cssom "^0.6.0"
-csstype@^3.0.2:
+csstype@^3.0.2, csstype@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
@@ -5454,6 +5662,13 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+json2mq@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a"
+ integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==
+ dependencies:
+ string-convert "^0.2.0"
+
json5@^1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz"
@@ -7352,6 +7567,11 @@ q@^1.1.2:
resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz"
integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
+qrcode.react@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8"
+ integrity sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==
+
qs@6.11.0:
version "6.11.0"
resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
@@ -7417,6 +7637,357 @@ raw-body@2.5.1:
iconv-lite "0.4.24"
unpipe "1.0.0"
+rc-cascader@~3.21.2:
+ version "3.21.2"
+ resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.21.2.tgz#3421841131cdc15157201fefd955da31f409ac85"
+ integrity sha512-J7GozpgsLaOtzfIHFJFuh4oFY0ePb1w10twqK6is3pAkqHkca/PsokbDr822KIRZ8/CK8CqevxohuPDVZ1RO/A==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ array-tree-filter "^2.1.0"
+ classnames "^2.3.1"
+ rc-select "~14.11.0"
+ rc-tree "~5.8.1"
+ rc-util "^5.37.0"
+
+rc-checkbox@~3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-3.1.0.tgz#6be0d9d8de2cc96fb5e37f9036a1c3e360d0a42d"
+ integrity sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "^2.3.2"
+ rc-util "^5.25.2"
+
+rc-collapse@~3.7.2:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.7.2.tgz#d11538ff9c705a5c988d9a4dfcc051a919692fe3"
+ integrity sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "2.x"
+ rc-motion "^2.3.4"
+ rc-util "^5.27.0"
+
+rc-dialog@~9.3.4:
+ version "9.3.4"
+ resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.3.4.tgz#e0decb3d4a0dbe36524a67ed2f8fe2daa4b7b73c"
+ integrity sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==
+ 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"
+
+rc-drawer@~7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-7.0.0.tgz#5632ad00284431665d4ff622b274d234fc9eefb2"
+ integrity sha512-ePcS4KtQnn57bCbVXazHN2iC8nTPCXlWEIA/Pft87Pd9U7ZeDkdRzG47jWG2/TAFXFlFltRAMcslqmUM8NPCGA==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ "@rc-component/portal" "^1.1.1"
+ classnames "^2.2.6"
+ rc-motion "^2.6.1"
+ rc-util "^5.36.0"
+
+rc-dropdown@~4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-4.1.0.tgz#418a68939631520de80d0865d02b440eeeb4168e"
+ integrity sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ "@rc-component/trigger" "^1.7.0"
+ classnames "^2.2.6"
+ rc-util "^5.17.0"
+
+rc-field-form@~1.41.0:
+ version "1.41.0"
+ resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.41.0.tgz#660ed8691fdabbc1e5b1ee6b5e0e4f534b295cf0"
+ integrity sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==
+ dependencies:
+ "@babel/runtime" "^7.18.0"
+ async-validator "^4.1.0"
+ rc-util "^5.32.2"
+
+rc-image@~7.5.1:
+ version "7.5.1"
+ resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.5.1.tgz#39a93354e14fe3e5eaafd9c9464e8fe3c6c171a0"
+ integrity sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==
+ dependencies:
+ "@babel/runtime" "^7.11.2"
+ "@rc-component/portal" "^1.0.2"
+ classnames "^2.2.6"
+ rc-dialog "~9.3.4"
+ rc-motion "^2.6.2"
+ rc-util "^5.34.1"
+
+rc-input-number@~9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.0.0.tgz#47da6eaf95b0cf566fcdf68196c4dc82b8c8f166"
+ integrity sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ "@rc-component/mini-decimal" "^1.0.1"
+ classnames "^2.2.5"
+ rc-input "~1.4.0"
+ rc-util "^5.28.0"
+
+rc-input@~1.4.0, rc-input@~1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.4.3.tgz#03f720f88cb56924cd1d5f78f859f41f2d62d1e0"
+ integrity sha512-aHyQUAIRmTlOnvk5EcNqEpJ+XMtfMpYRAJayIlJfsvvH9cAKUWboh4egm23vgMA7E+c/qm4BZcnrDcA960GC1w==
+ dependencies:
+ "@babel/runtime" "^7.11.1"
+ classnames "^2.2.1"
+ rc-util "^5.18.1"
+
+rc-mentions@~2.10.1:
+ version "2.10.1"
+ resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.10.1.tgz#842a227cb1f9f798cbf0c906a519f7de3ab8a9b9"
+ integrity sha512-72qsEcr/7su+a07ndJ1j8rI9n0Ka/ngWOLYnWMMv0p2mi/5zPwPrEDTt6Uqpe8FWjWhueDJx/vzunL6IdKDYMg==
+ dependencies:
+ "@babel/runtime" "^7.22.5"
+ "@rc-component/trigger" "^1.5.0"
+ classnames "^2.2.6"
+ rc-input "~1.4.0"
+ rc-menu "~9.12.0"
+ rc-textarea "~1.6.1"
+ rc-util "^5.34.1"
+
+rc-menu@~9.12.0, rc-menu@~9.12.4:
+ version "9.12.4"
+ resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.12.4.tgz#4959b5eeb780be7ff52aac31952b35efca46b9a3"
+ integrity sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ "@rc-component/trigger" "^1.17.0"
+ classnames "2.x"
+ rc-motion "^2.4.3"
+ rc-overflow "^1.3.1"
+ rc-util "^5.27.0"
+
+rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.9.0.tgz#9e18a1b8d61e528a97369cf9a7601e9b29205710"
+ integrity sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==
+ dependencies:
+ "@babel/runtime" "^7.11.1"
+ classnames "^2.2.1"
+ rc-util "^5.21.0"
+
+rc-notification@~5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.3.0.tgz#e31c86fe2350598ade8cff383babd1befa7a94fe"
+ integrity sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "2.x"
+ rc-motion "^2.9.0"
+ rc-util "^5.20.1"
+
+rc-overflow@^1.3.1, rc-overflow@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.3.2.tgz#72ee49e85a1308d8d4e3bd53285dc1f3e0bcce2c"
+ integrity sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==
+ dependencies:
+ "@babel/runtime" "^7.11.1"
+ classnames "^2.2.1"
+ rc-resize-observer "^1.0.0"
+ rc-util "^5.37.0"
+
+rc-pagination@~4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-4.0.4.tgz#ea401388ae86eac17ed5b41212d487f12b65b773"
+ integrity sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "^2.3.2"
+ rc-util "^5.38.0"
+
+rc-picker@~4.0.0-alpha.43:
+ version "4.0.0-alpha.44"
+ resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.0.0-alpha.44.tgz#f379a9fc3a151dace4b8da3cf7866b7d7550cefa"
+ integrity sha512-OvzzTS4UZDT1qRfv4PRK/+LDpXWJ6sD0zv5LPC7fvprihT/YVvjrOQPicWLlw5GqrrqP4hqbQkWB4KXDNlb5ag==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ "@rc-component/trigger" "^1.5.0"
+ classnames "^2.2.1"
+ rc-overflow "^1.3.2"
+ rc-resize-observer "^1.4.0"
+ rc-util "^5.38.1"
+
+rc-progress@~3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-3.5.1.tgz#a3cdfd2fe04eb5c3d43fa1c69e7dd70c73b102ae"
+ integrity sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "^2.2.6"
+ rc-util "^5.16.1"
+
+rc-rate@~2.12.0:
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.12.0.tgz#0182deffed3b009cdcc61660da8746c39ed91ed5"
+ integrity sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "^2.2.5"
+ rc-util "^5.0.1"
+
+rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1, rc-resize-observer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz#7bba61e6b3c604834980647cce6451914750d0cc"
+ integrity sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==
+ dependencies:
+ "@babel/runtime" "^7.20.7"
+ classnames "^2.2.1"
+ rc-util "^5.38.0"
+ resize-observer-polyfill "^1.5.1"
+
+rc-segmented@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.3.0.tgz#b3fe080fb434a266c02e30bb62a47d2c6e094341"
+ integrity sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==
+ dependencies:
+ "@babel/runtime" "^7.11.1"
+ classnames "^2.2.1"
+ rc-motion "^2.4.4"
+ rc-util "^5.17.0"
+
+rc-select@~14.11.0, rc-select@~14.11.0-0:
+ version "14.11.0"
+ resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.11.0.tgz#37c63acea92ac1dcd0e1b7ebd9c0614b53dd8346"
+ integrity sha512-8J8G/7duaGjFiTXCBLWfh5P+KDWyA3KTlZDfV3xj/asMPqB2cmxfM+lH50wRiPIRsCQ6EbkCFBccPuaje3DHIg==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ "@rc-component/trigger" "^1.5.0"
+ classnames "2.x"
+ rc-motion "^2.0.1"
+ rc-overflow "^1.3.1"
+ rc-util "^5.16.1"
+ rc-virtual-list "^3.5.2"
+
+rc-slider@~10.5.0:
+ version "10.5.0"
+ resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.5.0.tgz#1bd4853d114cb3403b67c485125887adb6a2a117"
+ integrity sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "^2.2.5"
+ rc-util "^5.27.0"
+
+rc-steps@~6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-6.0.1.tgz#c2136cd0087733f6d509209a84a5c80dc29a274d"
+ integrity sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==
+ dependencies:
+ "@babel/runtime" "^7.16.7"
+ classnames "^2.2.3"
+ rc-util "^5.16.1"
+
+rc-switch@~4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/rc-switch/-/rc-switch-4.1.0.tgz#f37d81b4e0c5afd1274fd85367b17306bf25e7d7"
+ integrity sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
+ classnames "^2.2.1"
+ rc-util "^5.30.0"
+
+rc-table@~7.39.0:
+ version "7.39.0"
+ resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.39.0.tgz#61822efc489c546e5a56edac47c9a092152b5280"
+ integrity sha512-7fHLMNsm/2DlGwyIMkdH2xIeRzb5I69bLsFaEVtX+gqmGhByy0wtOAgHkiOew3PtXozSJyh+iXifjLgQzWdczw==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ "@rc-component/context" "^1.4.0"
+ classnames "^2.2.5"
+ rc-resize-observer "^1.1.0"
+ rc-util "^5.37.0"
+ rc-virtual-list "^3.11.1"
+
+rc-tabs@~14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-14.0.0.tgz#ac1798959e1835c4d5216c9dae80943b7e5505f6"
+ integrity sha512-lp1YWkaPnjlyhOZCPrAWxK6/P6nMGX/BAZcAC3nuVwKz0Byfp+vNnQKK8BRCP2g/fzu+SeB5dm9aUigRu3tRkQ==
+ dependencies:
+ "@babel/runtime" "^7.11.2"
+ classnames "2.x"
+ rc-dropdown "~4.1.0"
+ rc-menu "~9.12.0"
+ rc-motion "^2.6.2"
+ rc-resize-observer "^1.0.0"
+ rc-util "^5.34.1"
+
+rc-textarea@~1.6.1, rc-textarea@~1.6.3:
+ version "1.6.3"
+ resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.6.3.tgz#3f294fdf5dfadbe9d0e7b695cea4da557728a9be"
+ integrity sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "^2.2.1"
+ rc-input "~1.4.0"
+ rc-resize-observer "^1.0.0"
+ rc-util "^5.27.0"
+
+rc-tooltip@~6.1.3:
+ version "6.1.3"
+ resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.1.3.tgz#83b97004a1ab918ed4936bbf089bc754254efd1b"
+ integrity sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==
+ dependencies:
+ "@babel/runtime" "^7.11.2"
+ "@rc-component/trigger" "^1.18.0"
+ classnames "^2.3.1"
+
+rc-tree-select@~5.17.0:
+ version "5.17.0"
+ resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.17.0.tgz#be5bcad09b5874bfcff14be758e76dd992e42359"
+ integrity sha512-7sRGafswBhf7n6IuHyCEFCildwQIgyKiV8zfYyUoWfZEFdhuk7lCH+DN0aHt+oJrdiY9+6Io/LDXloGe01O8XQ==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "2.x"
+ rc-select "~14.11.0-0"
+ rc-tree "~5.8.1"
+ rc-util "^5.16.1"
+
+rc-tree@~5.8.1, rc-tree@~5.8.5:
+ version "5.8.5"
+ resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.8.5.tgz#f714a383be27bd87366cf32f7f85b2af1fbae6b6"
+ integrity sha512-PRfcZtVDNkR7oh26RuNe1hpw11c1wfgzwmPFL0lnxGnYefe9lDAO6cg5wJKIAwyXFVt5zHgpjYmaz0CPy1ZtKg==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "2.x"
+ rc-motion "^2.0.1"
+ rc-util "^5.16.1"
+ rc-virtual-list "^3.5.1"
+
+rc-upload@~4.5.2:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.5.2.tgz#ea493fbaaf57d9369ee954b20e1d8bc35c818a1a"
+ integrity sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ classnames "^2.2.5"
+ rc-util "^5.2.0"
+
+rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.28.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1:
+ version "5.38.1"
+ resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.38.1.tgz#4915503b89855f5c5cd9afd4c72a7a17568777bb"
+ integrity sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ react-is "^18.2.0"
+
+rc-virtual-list@^3.11.1, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2:
+ version "3.11.4"
+ resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.11.4.tgz#d0a8937843160b7b00d5586854290bf56d396af7"
+ integrity sha512-NbBi0fvyIu26gP69nQBiWgUMTPX3mr4FcuBQiVqagU0BnuX8WQkiivnMs105JROeuUIFczLrlgUhLQwTWV1XDA==
+ dependencies:
+ "@babel/runtime" "^7.20.0"
+ classnames "^2.2.6"
+ rc-resize-observer "^1.0.0"
+ rc-util "^5.36.0"
+
react-dom@^18.2.0:
version "18.2.0"
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
@@ -7443,7 +8014,7 @@ react-is@^17.0.1:
resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
-react-is@^18.0.0:
+react-is@^18.0.0, react-is@^18.2.0:
version "18.2.0"
resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
@@ -7622,6 +8193,11 @@ requires-port@^1.0.0:
resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
+resize-observer-polyfill@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
+ integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
+
resolve-cwd@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz"
@@ -7856,6 +8432,13 @@ schema-utils@^3.0.0:
ajv "^6.12.5"
ajv-keywords "^3.5.2"
+scroll-into-view-if-needed@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f"
+ integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==
+ dependencies:
+ compute-scroll-into-view "^3.0.2"
+
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz"
@@ -8282,6 +8865,11 @@ strict-uri-encode@^1.0.0:
resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"
integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
+string-convert@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
+ integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==
+
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
@@ -8419,6 +9007,11 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
+stylis@^4.0.13:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.1.tgz#ed8a9ebf9f76fe1e12d462f5cc3c4c980b23a7eb"
+ integrity sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==
+
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
@@ -8540,6 +9133,11 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+throttle-debounce@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933"
+ integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==
+
through2@^2.0.0:
version "2.0.5"
resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"
@@ -8622,6 +9220,11 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
+toggle-selection@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
+ integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
+
toidentifier@1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"