Compare commits

...

3 Commits

Author SHA1 Message Date
vchikalkin
32f265fc8d optimize package/ui/elements imports
optimize antd/link imports

ui/elements/text: use antd component

ui/element: optimize input, input-number, switch, checkbox imports

fix Number typename

ui/elements: optimize Radio, Segmented, Select

move type Status to store types

fix TableInsurance builders

packages/ui: remove antd dir

Output/Results: fix elements margin

revert Loading status to elements

packages/ui: remove value from props

remove unnecessary loading prop
2023-05-16 11:31:45 +03:00
vchikalkin
58e01d025c ui: fix elements layout on mobile devices 2023-05-12 14:52:04 +03:00
vchikalkin
a8b6ca81ca upgrade antd@5.4.7 2023-05-12 14:20:03 +03:00
48 changed files with 825 additions and 721 deletions

View File

@ -26,6 +26,6 @@ export const rows: FormTabRows = [
{
title: 'Доп. продукты',
},
[['selectTechnicalCard', 'selectInsNSIB'], { gridTemplateColumns: '1fr 2fr' }],
[['selectTechnicalCard', 'selectInsNSIB'], { gridTemplateColumns: ['1fr', '2fr 1fr'] }],
[['selectRequirementTelematic', 'selectTracker', 'selectTelematic']],
];

View File

@ -7,6 +7,6 @@ export const rows: FormTabRows = [
[['cbxPriceWithDiscount', 'cbxFullPriceWithDiscount', 'cbxCostIncrease']],
[['cbxInsurance', 'cbxRegistrationQuote', 'cbxTechnicalCardQuote']],
[['cbxNSIB', 'cbxQuoteRedemptionGraph', 'cbxShowFinGAP']],
[['tbxQuoteName', 'radioQuoteContactGender'], { gridTemplateColumns: '1fr 1fr' }],
[['btnCreateKP', 'linkDownloadKp'], { gridTemplateColumns: '1fr 1fr' }],
[['tbxQuoteName', 'radioQuoteContactGender'], { gridTemplateColumns: ['1fr', '2fr 1fr'] }],
[['btnCreateKP', 'linkDownloadKp'], { gridTemplateColumns: ['1fr', '2fr 1fr'] }],
];

View File

@ -2,7 +2,7 @@ import type { columns } from '../lib/config';
import type { Row, StoreSelector } from '../types';
import { useStore } from '@/stores/hooks';
import { observer } from 'mobx-react-lite';
import { message, Table } from 'ui/antd';
import { message, Table } from 'ui/elements';
export const PolicyTable = observer(
({

View File

@ -1,7 +1,7 @@
import type { StoreSelector } from '../types';
import { useStore } from '@/stores/hooks';
import { observer } from 'mobx-react-lite';
import { Button } from 'ui/antd';
import { Button } from 'ui/elements';
import { ReloadOutlined } from 'ui/elements/icons';
import { Flex } from 'ui/grid';
@ -16,7 +16,8 @@ export const ReloadButton = observer(
<Flex justifyContent="center">
<Button
onClick={onClick}
disabled={hasErrors || rows.some((x) => x.status === 'fetching')}
disabled={hasErrors}
loading={rows.some((x) => x.status === 'fetching')}
shape="circle"
icon={<ReloadOutlined />}
/>

View File

@ -1,7 +1,7 @@
import type { StoreSelector } from '../types';
import { useStore } from '@/stores/hooks';
import { observer } from 'mobx-react-lite';
import { Alert } from 'ui/antd';
import { Alert } from 'ui/elements';
export const Validation = observer(({ storeSelector }: { storeSelector: StoreSelector }) => {
const { $tables, $process } = useStore();

View File

@ -13,10 +13,17 @@ export function buildOptionComponent<T>(
const [value, setValue] = useInsuranceValue(key, valueName);
const { getOptions, getStatus } = useRow(key);
const options = getOptions(valueName);
const statuses = getStatus(valueName);
const status = getStatus(valueName);
return (
<Component options={options} setValue={setValue} status={statuses} value={value} {...props} />
<Component
options={options}
onChange={setValue}
disabled={status === 'Disabled'}
loading={status === 'Loading'}
value={value}
{...props}
/>
);
});
}
@ -29,8 +36,10 @@ export function buildValueComponent<T>(
return observer((props: T) => {
const [value, setValue] = useInsuranceValue(key, valueName);
const { getStatus } = useRow(key);
const statuses = getStatus(valueName);
const status = getStatus(valueName);
return <Component setValue={setValue} status={statuses} value={value} {...props} />;
return (
<Component onChange={setValue} disabled={status === 'Disabled'} value={value} {...props} />
);
});
}

View File

@ -1,5 +1,6 @@
import type { KeysSchema, RowSchema } from '@/config/schema/insurance';
import type { BaseOption, Status } from 'ui/elements/types';
import type { Status } from '@/stores/calculation/statuses/types';
import type { BaseOption } from 'ui/elements/types';
import type { z } from 'zod';
export type Keys = z.infer<typeof KeysSchema>;

View File

@ -9,7 +9,7 @@ export const rows: FormTabRows = [
[['selectSupplierCurrency', 'tbxSupplierDiscountRub', 'tbxSupplierDiscountPerc']],
[['tbxFirstPaymentPerc', 'tbxFirstPaymentRub']],
[['tbxLeasingPeriod', 'tbxSaleBonus']],
[['selectSubsidy', 'tbxSubsidySum'], { gridTemplateColumns: '2fr 1fr' }],
[['selectSubsidy', 'tbxSubsidySum'], { gridTemplateColumns: ['1fr', '2fr 1fr'] }],
[['selectImportProgram', 'tbxImportProgramSum', 'tbxAddEquipmentPrice']],
[['radioLastPaymentRule'], { gridTemplateColumns: '1fr' }],
[['tbxLastPaymentPerc', 'tbxLastPaymentRub']],

View File

@ -5,8 +5,7 @@ import { computed } from 'mobx';
import { observer } from 'mobx-react-lite';
import { createContext, useContext, useMemo, useState } from 'react';
import styled from 'styled-components';
import { Segmented } from 'ui/antd';
import { Alert, Table } from 'ui/elements';
import { Alert, Segmented, Table } from 'ui/elements';
import { Box, Flex } from 'ui/grid';
import { useDebouncedCallback } from 'use-debounce';

View File

@ -3,6 +3,7 @@ import { useProcessContext } from '@/process/hooks/common';
import { useStatus } from '@/stores/calculation/statuses/hooks';
import { observer } from 'mobx-react-lite';
import type { ComponentType } from 'react';
import { useThrottledCallback } from 'use-debounce';
type BuilderProps = {
elementName: Elements;
@ -17,13 +18,23 @@ export default function buildAction<T>(
const status = useStatus(elementName);
const context = useProcessContext();
const throttledAction = useThrottledCallback(
() => {
import(`process/${processName}/action`).then((module) => module.action(context));
},
1200,
{
trailing: false,
}
);
return (
<Component
action={() =>
import(`process/${processName}/action`).then((module) => module.action(context))}
onClick={throttledAction}
status={status}
{...props}
disabled={status === 'Disabled'}
loading={status === 'Loading'}
/>
);
});

View File

@ -0,0 +1,38 @@
import type { Elements } from '../config/map/values';
import { useStoreValue } from './hooks';
import { useStatus } from '@/stores/calculation/statuses/hooks';
import { useValidation } from '@/stores/calculation/validation/hooks';
import type { Values } from '@/stores/calculation/values/types';
import type { CheckboxChangeEvent } from 'antd/lib/checkbox';
import { observer } from 'mobx-react-lite';
import type { ComponentType } from 'react';
import { Form } from 'ui/elements';
type BuilderProps = {
elementName: Elements;
valueName: Values;
};
export function buildCheck<T>(
Component: ComponentType<T>,
{ elementName, valueName }: BuilderProps
) {
return observer((props: T) => {
const [value, setValue] = useStoreValue(valueName);
const status = useStatus(elementName);
const { validateStatus, help } = useValidation(elementName);
return (
<Form.Item help={help} validateStatus={validateStatus}>
<Component
onChange={(event: CheckboxChangeEvent) => {
setValue(event.target.checked);
}}
disabled={status === 'Disabled'}
checked={value}
{...props}
/>
</Form.Item>
);
});
}

View File

@ -0,0 +1,31 @@
import type { Elements } from '../config/map/values';
import { useStoreValue } from './hooks';
import { useStatus } from '@/stores/calculation/statuses/hooks';
import type { Values } from '@/stores/calculation/values/types';
import { observer } from 'mobx-react-lite';
import type { ComponentType } from 'react';
export type BuilderProps = {
elementName: Elements;
valueName: Values;
};
export default function buildLink<T>(
Component: ComponentType<T>,
{ elementName, valueName }: BuilderProps
) {
return observer((props: T) => {
const [value] = useStoreValue(valueName);
const status = useStatus(elementName);
return (
<Component
status={status}
href={value}
disabled={!value}
loading={status === 'Loading'}
{...props}
/>
);
});
}

View File

@ -6,6 +6,7 @@ import { useValidation } from '@/stores/calculation/validation/hooks';
import type { Values } from '@/stores/calculation/values/types';
import { observer } from 'mobx-react-lite';
import type { ComponentType } from 'react';
import { Form } from 'ui/elements';
type BuilderProps = {
elementName: Elements;
@ -23,15 +24,16 @@ export default function buildOptions<T>(
const options = useOptions(elementName);
return (
<Component
help={help}
validateStatus={validateStatus}
options={options}
setValue={setValue}
status={status}
value={value}
{...props}
/>
<Form.Item help={help} validateStatus={validateStatus}>
<Component
disabled={status === 'Disabled'}
loading={status === 'Loading'}
options={options}
onChange={setValue}
value={value}
{...props}
/>
</Form.Item>
);
});
}

View File

@ -4,14 +4,15 @@ import { useStatus } from '@/stores/calculation/statuses/hooks';
import { useValidation } from '@/stores/calculation/validation/hooks';
import type { Values } from '@/stores/calculation/values/types';
import { observer } from 'mobx-react-lite';
import type { ComponentType } from 'react';
import type { ChangeEvent, ComponentType } from 'react';
import { Form } from 'ui/elements';
export type BuilderProps = {
type BuilderProps = {
elementName: Elements;
valueName: Values;
};
export default function buildValue<T>(
export function buildValue<T>(
Component: ComponentType<T>,
{ elementName, valueName }: BuilderProps
) {
@ -21,14 +22,40 @@ export default function buildValue<T>(
const { validateStatus, help } = useValidation(elementName);
return (
<Component
help={help}
validateStatus={validateStatus}
setValue={setValue}
status={status}
value={value}
{...props}
/>
<Form.Item help={help} validateStatus={validateStatus}>
<Component
onChange={(e: ChangeEvent<HTMLInputElement>) => {
setValue(e.target.value);
}}
disabled={status === 'Disabled'}
value={value}
{...props}
/>
</Form.Item>
);
});
}
export function buildNumberValue<T>(
Component: ComponentType<T>,
{ elementName, valueName }: BuilderProps
) {
return observer((props: T) => {
const [value, setValue] = useStoreValue(valueName);
const status = useStatus(elementName);
const { validateStatus, help } = useValidation(elementName);
return (
<Form.Item help={help} validateStatus={validateStatus}>
<Component
onChange={(v = 0) => {
setValue(v);
}}
disabled={status === 'Disabled'}
value={value}
{...props}
/>
</Form.Item>
);
});
}

View File

@ -1,4 +1,6 @@
export { default as buildAction } from './build-action';
export * from './build-check';
export { default as buildLink } from './build-link';
export { default as buildOptions } from './build-options';
export { default as buildReadonly } from './build-readonly';
export { default as buildValue } from './build-value';
export * from './build-value';

View File

@ -19,6 +19,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: CurrencyAddon,
style: {
width: '100%',
},
},
tbxLeaseObjectPriceWthtVAT: {
min: 0,
@ -28,6 +31,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: CurrencyAddon,
style: {
width: '100%',
},
},
tbxVATInLeaseObjectPrice: {
min: 0,
@ -37,12 +43,18 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: CurrencyAddon,
style: {
width: '100%',
},
},
tbxEngineHours: {
min: 0,
step: 10,
precision: 2,
addonAfter: 'ч.',
style: {
width: '100%',
},
},
tbxSupplierDiscountRub: {
min: 0,
@ -52,6 +64,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: CurrencyAddon,
style: {
width: '100%',
},
},
tbxSupplierDiscountPerc: {
min: 0,
@ -59,6 +74,9 @@ const props: Partial<ElementsProps> = {
precision: 2,
addonAfter: '%',
style: {
width: '100%',
},
},
radioBalanceHolder: {
optionType: 'button',
@ -71,6 +89,9 @@ const props: Partial<ElementsProps> = {
precision: 2,
addonAfter: '%',
style: {
width: '100%',
},
},
radioLastPaymentRule: {
block: true,
@ -82,6 +103,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter: createFormatter({ minimumFractionDigits: 4, maximumFractionDigits: 4 }),
addonAfter: '%',
style: {
width: '100%',
},
},
tbxFirstPaymentRub: {
min: 0,
@ -91,6 +115,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxLastPaymentPerc: {
min: 0,
@ -100,6 +127,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter: createFormatter({ minimumFractionDigits: 6, maximumFractionDigits: 6 }),
addonAfter: '%',
style: {
width: '100%',
},
},
tbxLastPaymentRub: {
min: 0,
@ -109,6 +139,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxRedemptionPaymentSum: {
min: 1000,
@ -118,34 +151,55 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxLeasingPeriod: {
min: 13,
max: MAX_LEASING_PERIOD,
addonAfter: 'мес.',
style: {
width: '100%',
},
},
tbxSubsidySum: {
min: 0,
precision: 2,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxImportProgramSum: {
min: 0,
precision: 2,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxAddEquipmentPrice: {
min: 0,
precision: 2,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxParmentsDecreasePercent: {
min: 50,
max: 99,
style: {
width: '100%',
},
},
tbxComissionPerc: {
min: 0,
max: 100,
style: {
width: '100%',
},
},
tbxComissionRub: {
min: 0,
@ -154,6 +208,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
selectLeaseObjectType: {
showSearch: true,
@ -175,6 +232,9 @@ const props: Partial<ElementsProps> = {
min: 1,
max: 1000,
addonAfter: 'шт.',
style: {
width: '100%',
},
},
selectLeaseObjectUseFor: {
showSearch: true,
@ -183,6 +243,9 @@ const props: Partial<ElementsProps> = {
tbxLeaseObjectYear: {
min: 1994,
max: dayjs().year(),
style: {
width: '100%',
},
},
selectLeaseObjectCategory: {
showSearch: false,
@ -199,6 +262,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: 'л.с.',
style: {
width: '100%',
},
},
tbxEngineVolume: {
min: 0,
@ -208,6 +274,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter: createFormatter({ minimumFractionDigits: 4, maximumFractionDigits: 4 }),
addonAfter: 'л',
style: {
width: '100%',
},
},
tbxMaxMass: {
min: 0,
@ -216,12 +285,18 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: 'кг',
style: {
width: '100%',
},
},
tbxCountSeats: {
min: 0,
max: 2000,
precision: 0,
parser,
style: {
width: '100%',
},
},
tbxMaxSpeed: {
min: 0,
@ -229,6 +304,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: 'км/ч',
style: {
width: '100%',
},
},
selectDealer: {
showSearch: true,
@ -239,36 +317,54 @@ const props: Partial<ElementsProps> = {
max: 20,
step: 0.1,
precision: 2,
style: {
width: '100%',
},
},
tbxDealerBrokerRewardSumm: {
min: 0,
max: 20,
step: 0.1,
precision: 2,
style: {
width: '100%',
},
},
tbxIndAgentRewardSumm: {
min: 0,
max: 20,
step: 0.1,
precision: 2,
style: {
width: '100%',
},
},
tbxCalcDoubleAgentRewardSumm: {
min: 0,
max: 20,
step: 0.1,
precision: 2,
style: {
width: '100%',
},
},
tbxCalcBrokerRewardSum: {
min: 0,
max: 20,
step: 0.1,
precision: 2,
style: {
width: '100%',
},
},
tbxFinDepartmentRewardSumm: {
min: 0,
max: 20,
step: 0.1,
precision: 2,
style: {
width: '100%',
},
},
tbxInsFranchise: {
min: 0,
@ -278,14 +374,23 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxInsAgeDrivers: {
// min: 18,
// max: 99,
style: {
width: '100%',
},
},
tbxInsExpDrivers: {
// min: 0,
// max: 99,
style: {
width: '100%',
},
},
selectRegionRegistration: {
showSearch: true,
@ -300,17 +405,17 @@ const props: Partial<ElementsProps> = {
buttonStyle: 'solid',
},
btnCalculate: {
text: 'Рассчитать график',
children: 'Рассчитать график',
type: 'primary',
block: true,
},
btnCreateKP: {
type: 'primary',
text: 'Создать КП',
children: 'Создать КП',
icon: <PlusOutlined />,
},
btnCreateKPMini: {
text: '',
children: '',
type: 'primary',
icon: <PlusOutlined />,
block: true,
@ -319,6 +424,9 @@ const props: Partial<ElementsProps> = {
min: 0,
max: 99.99,
step: 0.1,
style: {
width: '100%',
},
},
tbxMaxPriceChange: {
min: 0,
@ -326,6 +434,9 @@ const props: Partial<ElementsProps> = {
step: 10_000,
parser,
formatter,
style: {
width: '100%',
},
},
tbxMinPriceChange: {
min: 0,
@ -333,12 +444,18 @@ const props: Partial<ElementsProps> = {
step: 10_000,
parser,
formatter,
style: {
width: '100%',
},
},
tbxImporterRewardPerc: {
min: 0,
max: 99.99,
step: 0.1,
precision: 2,
style: {
width: '100%',
},
},
tbxImporterRewardRub: {
min: 0,
@ -347,6 +464,9 @@ const props: Partial<ElementsProps> = {
precision: 2,
parser,
formatter,
style: {
width: '100%',
},
},
selectLead: {
showSearch: true,
@ -368,23 +488,22 @@ const props: Partial<ElementsProps> = {
parser,
formatter: createFormatter({ minimumFractionDigits: 6, maximumFractionDigits: 6 }),
addonAfter: '%',
style: {
width: '100%',
},
},
linkDownloadKp: {
type: 'primary',
text: 'Скачать КП',
icon: <DownloadOutlined />,
},
linkDownloadKp: { children: 'Скачать КП', icon: <DownloadOutlined />, target: '_blank' },
tbxMileage: {
min: 0,
step: 100,
precision: 2,
addonAfter: 'км',
style: {
width: '100%',
},
},
cbxRecalcWithRevision: {
text: 'Пересчет без пересмотра',
style: {
marginBottom: '8px',
},
children: 'Пересчет без пересмотра',
},
tbxTotalPayments: {
min: 0,
@ -393,6 +512,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxVehicleTaxInYear: {
min: 0,
@ -402,6 +524,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
tbxVehicleTaxInLeasingPeriod: {
min: 0,
@ -411,6 +536,9 @@ const props: Partial<ElementsProps> = {
parser,
formatter,
addonAfter: '₽',
style: {
width: '100%',
},
},
selectObjectRegionRegistration: {
showSearch: true,
@ -423,6 +551,9 @@ const props: Partial<ElementsProps> = {
formatter,
readOnly: true,
controls: false,
style: {
width: '100%',
},
},
selectLegalClientRegion: {
showSearch: true,
@ -457,6 +588,9 @@ const props: Partial<ElementsProps> = {
step: 0.1,
precision: 4,
formatter: createFormatter({ minimumFractionDigits: 4, maximumFractionDigits: 4 }),
style: {
width: '100%',
},
},
tbxVIN: {
onInput: (e) => {

View File

@ -1,4 +1,4 @@
import buildReadonly from '../../builders/build-readonly';
import { buildLink } from '../../builders';
import components from '../elements-components';
import elementsProps from '../elements-props';
import titles from '../elements-titles';
@ -14,7 +14,7 @@ import { Link, Tooltip } from 'ui/elements';
import { LoadingOutlined } from 'ui/elements/icons';
const defaultLinkProps: ComponentProps<typeof Link> = {
text: 'Открыть в CRM',
children: 'Открыть в CRM',
type: 'link',
};
@ -58,7 +58,7 @@ const overrideRender: Partial<Record<keyof typeof map, RenderProps>> = {
valueName,
});
const LinkComponent = buildReadonly(Link, {
const LinkComponent = buildLink(Link, {
elementName: 'linkLeadUrl',
valueName: 'leadUrl',
});
@ -90,7 +90,7 @@ const overrideRender: Partial<Record<keyof typeof map, RenderProps>> = {
valueName,
});
const LinkComponent = buildReadonly(Link, {
const LinkComponent = buildLink(Link, {
elementName: 'linkOpportunityUrl',
valueName: 'opportunityUrl',
});
@ -122,7 +122,7 @@ const overrideRender: Partial<Record<keyof typeof map, RenderProps>> = {
valueName,
});
const LinkComponent = buildReadonly(Link, {
const LinkComponent = buildLink(Link, {
elementName: 'linkQuoteUrl',
valueName: 'quoteUrl',
});

View File

@ -1,11 +1,15 @@
/* eslint-disable jsdoc/multiline-blocks */
/* eslint-disable canonical/sort-keys */
import { buildAction, buildOptions, buildReadonly, buildValue } from '../builders';
import * as b from '../builders';
import type { Elements as ActionElements } from './map/actions';
import type { Elements as ValuesElements } from './map/values';
type ElementTypes = 'Action' | 'Options' | 'Readonly' | 'Value';
type Builders = typeof buildAction | typeof buildOptions | typeof buildReadonly | typeof buildValue;
type ElementTypes = 'Action' | 'Check' | 'Link' | 'Options' | 'Readonly' | 'Value';
type Builders =
| typeof b.buildAction
| typeof b.buildOptions
| typeof b.buildReadonly
| typeof b.buildValue;
type GetType = () => {
builder: Builders;
@ -19,19 +23,31 @@ function wrapTypeGetters<G extends GetType, E extends Record<ElementTypes, G>>(a
const t = wrapTypeGetters({
Value: () => ({
typeName: 'Value',
builder: buildValue,
builder: b.buildValue,
}),
Number: () => ({
typeName: 'Number',
builder: b.buildNumberValue,
}),
Readonly: () => ({
typeName: 'Readonly',
builder: buildReadonly,
builder: b.buildReadonly,
}),
Options: () => ({
typeName: 'Options',
builder: buildOptions,
builder: b.buildOptions,
}),
Action: () => ({
typeName: 'Action',
builder: buildAction,
builder: b.buildAction,
}),
Link: () => ({
typeName: 'Link',
builder: b.buildLink,
}),
Check: () => ({
typeName: 'Check',
builder: b.buildCheck,
}),
});
@ -40,68 +56,68 @@ function wrapElementsTypes<T, E extends Record<ActionElements | ValuesElements,
}
const types = wrapElementsTypes({
cbxRecalcWithRevision: t.Value,
tbxLeaseObjectPrice: t.Value,
tbxLeaseObjectPriceWthtVAT: t.Value,
tbxVATInLeaseObjectPrice: t.Value,
tbxEngineHours: t.Value,
tbxSupplierDiscountRub: t.Value,
tbxSupplierDiscountPerc: t.Value,
tbxLeasingPeriod: t.Value,
tbxFirstPaymentPerc: t.Value,
tbxFirstPaymentRub: t.Value,
tbxLastPaymentPerc: t.Value,
tbxLastPaymentRub: t.Value,
cbxRecalcWithRevision: t.Check,
tbxLeaseObjectPrice: t.Number,
tbxLeaseObjectPriceWthtVAT: t.Number,
tbxVATInLeaseObjectPrice: t.Number,
tbxEngineHours: t.Number,
tbxSupplierDiscountRub: t.Number,
tbxSupplierDiscountPerc: t.Number,
tbxLeasingPeriod: t.Number,
tbxFirstPaymentPerc: t.Number,
tbxFirstPaymentRub: t.Number,
tbxLastPaymentPerc: t.Number,
tbxLastPaymentRub: t.Number,
selectImportProgram: t.Options,
tbxImportProgramSum: t.Readonly,
tbxAddEquipmentPrice: t.Value,
tbxRedemptionPaymentSum: t.Value,
tbxParmentsDecreasePercent: t.Value,
tbxComissionPerc: t.Value,
tbxComissionRub: t.Value,
tbxSaleBonus: t.Value,
tbxIRR_Perc: t.Value,
tbxLeaseObjectCount: t.Value,
cbxWithTrailer: t.Value,
cbxLeaseObjectUsed: t.Value,
tbxMaxMass: t.Value,
tbxCountSeats: t.Value,
tbxMaxSpeed: t.Value,
tbxLeaseObjectYear: t.Value,
tbxLeaseObjectMotorPower: t.Value,
tbxEngineVolume: t.Value,
tbxDealerRewardSumm: t.Value,
tbxDealerBrokerRewardSumm: t.Value,
tbxIndAgentRewardSumm: t.Value,
tbxCalcDoubleAgentRewardSumm: t.Value,
tbxCalcBrokerRewardSum: t.Value,
tbxFinDepartmentRewardSumm: t.Value,
cbxInsDecentral: t.Value,
tbxInsFranchise: t.Value,
cbxInsUnlimitDrivers: t.Value,
tbxInsAgeDrivers: t.Value,
tbxInsExpDrivers: t.Value,
cbxLastPaymentRedemption: t.Value,
cbxPriceWithDiscount: t.Value,
cbxFullPriceWithDiscount: t.Value,
cbxCostIncrease: t.Value,
cbxInsurance: t.Value,
cbxRegistrationQuote: t.Value,
cbxTechnicalCardQuote: t.Value,
cbxNSIB: t.Value,
tbxAddEquipmentPrice: t.Number,
tbxRedemptionPaymentSum: t.Number,
tbxParmentsDecreasePercent: t.Number,
tbxComissionPerc: t.Number,
tbxComissionRub: t.Number,
tbxSaleBonus: t.Number,
tbxIRR_Perc: t.Number,
tbxLeaseObjectCount: t.Number,
cbxWithTrailer: t.Check,
cbxLeaseObjectUsed: t.Check,
tbxMaxMass: t.Number,
tbxCountSeats: t.Number,
tbxMaxSpeed: t.Number,
tbxLeaseObjectYear: t.Number,
tbxLeaseObjectMotorPower: t.Number,
tbxEngineVolume: t.Number,
tbxDealerRewardSumm: t.Number,
tbxDealerBrokerRewardSumm: t.Number,
tbxIndAgentRewardSumm: t.Number,
tbxCalcDoubleAgentRewardSumm: t.Number,
tbxCalcBrokerRewardSum: t.Number,
tbxFinDepartmentRewardSumm: t.Number,
cbxInsDecentral: t.Check,
tbxInsFranchise: t.Number,
cbxInsUnlimitDrivers: t.Check,
tbxInsAgeDrivers: t.Number,
tbxInsExpDrivers: t.Number,
cbxLastPaymentRedemption: t.Check,
cbxPriceWithDiscount: t.Check,
cbxFullPriceWithDiscount: t.Check,
cbxCostIncrease: t.Check,
cbxInsurance: t.Check,
cbxRegistrationQuote: t.Check,
cbxTechnicalCardQuote: t.Check,
cbxNSIB: t.Check,
tbxQuoteName: t.Value,
cbxQuoteRedemptionGraph: t.Value,
cbxShowFinGAP: t.Value,
tbxCreditRate: t.Value,
tbxMaxPriceChange: t.Value,
tbxImporterRewardPerc: t.Value,
tbxImporterRewardRub: t.Value,
cbxDisableChecks: t.Value,
tbxMileage: t.Value,
tbxTotalPayments: t.Value,
tbxVehicleTaxInYear: t.Value,
tbxVehicleTaxInLeasingPeriod: t.Value,
tbxMinPriceChange: t.Value,
cbxQuoteRedemptionGraph: t.Check,
cbxShowFinGAP: t.Check,
tbxCreditRate: t.Number,
tbxMaxPriceChange: t.Number,
tbxImporterRewardPerc: t.Number,
tbxImporterRewardRub: t.Number,
cbxDisableChecks: t.Check,
tbxMileage: t.Number,
tbxTotalPayments: t.Number,
tbxVehicleTaxInYear: t.Number,
tbxVehicleTaxInLeasingPeriod: t.Number,
tbxMinPriceChange: t.Number,
selectProduct: t.Options,
selectClientRisk: t.Options,
@ -163,7 +179,7 @@ const types = wrapElementsTypes({
selectLeasingWithoutKasko: t.Options,
tbxVIN: t.Value,
selectUser: t.Options,
cbxSupplierFinancing: t.Value,
cbxSupplierFinancing: t.Check,
labelLeaseObjectRisk: t.Readonly,
tbxInsKaskoPriceLeasePeriod: t.Readonly,
@ -176,10 +192,10 @@ const types = wrapElementsTypes({
btnCreateKPMini: t.Action,
btnCalculate: t.Action,
linkDownloadKp: t.Readonly,
linkLeadUrl: t.Readonly,
linkOpportunityUrl: t.Readonly,
linkQuoteUrl: t.Readonly,
linkDownloadKp: t.Link,
linkLeadUrl: t.Link,
linkOpportunityUrl: t.Link,
linkQuoteUrl: t.Link,
});
export default types;

View File

@ -35,6 +35,7 @@ const Logout = styled.a`
font-size: 0.45rem;
font-family: 'Montserrat';
font-weight: 500;
margin-top: 2px;
${min('laptop')} {
font-size: 0.55rem;

View File

@ -17,7 +17,7 @@ const HeaderContent = styled(Flex)`
padding: 10px 12px;
${min('laptop')} {
padding: 10px 12px;
padding: 12px 12px;
padding-left: 20px;
}
`;

View File

@ -18,6 +18,10 @@ const Grid = styled(Box)`
}
`;
const Wrapper = styled.div`
margin-bottom: 18px;
`;
const Results = observer(() => {
const { $results, $process } = useStore();
@ -38,10 +42,12 @@ const Results = observer(() => {
const value = formatter(storeValue);
return (
<Container key={valueName}>
<Head title={titles[valueName]} />
<Text>{value}</Text>
</Container>
<Wrapper key={valueName}>
<Container key={valueName}>
<Head title={titles[valueName]} />
<Text>{value}</Text>
</Container>
</Wrapper>
);
})}
</Grid>

View File

@ -1,8 +1,5 @@
const { withPlugins } = require('next-composed-plugins');
const withLess = require('next-with-less');
const fs = require('fs');
const path = require('path');
const { COLORS_DEV, COLORS_PROD } = require('./constants/colors');
const envSchema = require('./config/schema/env');
const urls = require('./constants/urls');
const { devices } = require('./config/ui');
@ -21,7 +18,7 @@ function buildFaviconRewrite(source) {
}
/** @type {import('next').NextConfig} */
const nextConfig = {
module.exports = {
basePath: env.BASE_PATH,
compiler: {
styledComponents: true,
@ -71,20 +68,3 @@ const nextConfig = {
swcMinify: true,
transpilePackages: ['ui', 'tools'],
};
const plugins = [withLess];
const colorPrimary = env.USE_DEV_COLORS ? COLORS_DEV.COLOR_PRIMARY : COLORS_PROD.COLOR_PRIMARY;
const config = {
...nextConfig,
lessLoaderOptions: {
lessOptions: {
modifyVars: {
'primary-color': colorPrimary,
},
},
},
};
module.exports = withPlugins(config, plugins);

View File

@ -27,8 +27,6 @@
"mobx": "^6.8.0",
"mobx-react-lite": "^3.4.0",
"next": "^13.2.1",
"next-composed-plugins": "^1.0.1",
"next-with-less": "^2.0.5",
"normalize.css": "^8.0.1",
"radash": "^10.7.0",
"react": "^18.2.0",

View File

@ -1,5 +1,4 @@
import 'normalize.css';
import 'ui/elements/styles/antd.less';
import '../styles/fonts.css';
import '../styles/globals.css';
import initializeQueryClient from '@/api/client';
@ -7,6 +6,7 @@ import initializeApollo from '@/apollo/client';
import Layout from '@/Components/Layout';
import { theme } from '@/config/ui';
import StoreProvider from '@/stores/Provider';
import getColors from '@/styles/colors';
import { GlobalStyle } from '@/styles/global-style';
import { trpcClient } from '@/trpc/client';
import { ApolloProvider } from '@apollo/client';
@ -15,7 +15,6 @@ import Head from 'next/head';
import { useMemo } from 'react';
import { ThemeProvider } from 'styled-components';
import AntdConfig from 'ui/elements/Config';
// eslint-disable-next-line turbo/no-undeclared-env-vars
if (process.env.NODE_ENV === 'development') {
require('../mocks');
@ -26,6 +25,8 @@ function App({ Component, pageProps }) {
const apolloClient = useMemo(() => initializeApollo(initialApolloState), [initialApolloState]);
const queryClient = useMemo(() => initializeQueryClient(initialQueryState), [initialQueryState]);
const colorPrimary = getColors().COLOR_PRIMARY;
return (
<ThemeProvider theme={theme}>
<Head>
@ -36,7 +37,16 @@ function App({ Component, pageProps }) {
</Head>
<GlobalStyle />
<StoreProvider {...pageProps}>
<AntdConfig>
<AntdConfig
theme={{
token: {
borderRadius: 2,
borderRadiusLG: 2,
colorLink: colorPrimary,
colorPrimary,
},
}}
>
<ApolloProvider client={apolloClient}>
<QueryClientProvider client={queryClient}>
<Layout>

View File

@ -1,10 +1,9 @@
import type { CalculationStatuses } from './types';
import type { CalculationStatuses, Status } from './types';
import type { Elements as ElementsActions } from '@/Components/Calculation/config/map/actions';
import type { Elements as ElementsValues } from '@/Components/Calculation/config/map/values';
import defaultStatuses from '@/config/default-statuses';
import type RootStore from '@/stores/root';
import { makeAutoObservable } from 'mobx';
import type { Status } from 'ui/elements/types';
export default class StatusStore {
private root: RootStore;

View File

@ -1,5 +1,6 @@
import type { Elements as ElementsActions } from '@/Components/Calculation/config/map/actions';
import type { Elements as ElementsValues } from '@/Components/Calculation/config/map/values';
import type { Status } from 'ui/elements/types';
export type Status = 'Default' | 'Disabled' | 'Hidden' | 'Loading';
export type CalculationStatuses = Record<ElementsActions | ElementsValues, Status>;

View File

@ -1,6 +1,12 @@
import type { Elements } from '@/Components/Calculation/config/map/values';
import { useStore } from '@/stores/hooks';
import type { ComponentProps, ReactNode } from 'react';
import type { Form } from 'ui/elements';
export function useValidation(elementName) {
export function useValidation(elementName: Elements): {
help: ReactNode;
validateStatus: ComponentProps<(typeof Form)['Item']>['validateStatus'];
} {
const { $calculation, $process } = useStore();
const hasErrors = $calculation.$validation?.[elementName]?.hasErrors;
if (hasErrors) {
@ -11,6 +17,7 @@ export function useValidation(elementName) {
}
return {
help: '',
validateStatus: '',
};
}

View File

@ -1,10 +1,10 @@
import Validation from '../../validation';
import type { ValidationParams } from '../../validation/types';
import type { Row } from './types';
import type { Status } from '@/stores/calculation/statuses/types';
import type RootStore from '@/stores/root';
import type { IObservableArray, IObservableValue } from 'mobx';
import { makeAutoObservable, observable, reaction } from 'mobx';
import type { Status } from 'ui/elements/types';
export default class PaymentsTable {
private root: RootStore;

View File

@ -1,4 +1,4 @@
import type { Status } from 'ui/elements/types';
import type { Status } from '@/stores/calculation/statuses/types';
export type Row = {
status: Status;

View File

@ -27,7 +27,7 @@ export default class Validation {
public removeError = ({ key }: Pick<ValidationError, 'key'>) => {
const error = [...this.errors].find((x) => x.key === key);
if (error) this.errors.delete(error);
if (this.errors.size === 0) notification.close(this.params.err_key);
if (this.errors.size === 0 && !isServer()) notification.destroy(this.params.err_key);
};
public setError = ({ key, message, silent }: ValidationParams) => {
@ -49,6 +49,6 @@ export default class Validation {
public clearErrors = () => {
this.errors.clear();
notification.close(this.params.err_key);
if (!isServer()) notification.destroy(this.params.err_key);
};
}

View File

@ -1 +0,0 @@
export * from 'antd';

View File

@ -1,31 +0,0 @@
import type { BaseElementProps } from './types';
import { Button as AntButton } from 'antd';
import type { BaseButtonProps } from 'antd/lib/button/button';
import type { FC } from 'react';
import { useThrottledCallback } from 'use-debounce';
type ElementProps = {
action: () => void;
text: string;
};
type ButtonProps = BaseButtonProps & Pick<ElementProps, 'text'>;
function Button({ status, action, text, ...props }: BaseElementProps<never> & ElementProps) {
const throttledAction = useThrottledCallback(action, 1200, {
trailing: false,
});
return (
<AntButton
disabled={status === 'Disabled'}
loading={status === 'Loading'}
onClick={throttledAction}
{...props}
>
{text}
</AntButton>
);
}
export default Button as FC<ButtonProps>;

View File

@ -1,42 +0,0 @@
import type { BaseElementProps } from './types';
import type { CheckboxProps as AntCheckboxProps } from 'antd';
import { Checkbox as AntCheckbox, Form } from 'antd';
import type { CheckboxChangeEvent } from 'antd/lib/checkbox';
import type { FC } from 'react';
const { Item: FormItem } = Form;
type ElementProps = {
text: string;
};
type CheckboxProps = AntCheckboxProps & ElementProps;
function Checkbox({
value,
setValue,
status,
validateStatus,
help,
text,
...props
}: BaseElementProps<boolean> & ElementProps) {
function handleChange(event: CheckboxChangeEvent) {
setValue(event.target.checked);
}
return (
<FormItem hasFeedback help={help} validateStatus={validateStatus}>
<AntCheckbox
checked={value}
disabled={status === 'Disabled'}
onChange={handleChange}
{...props}
>
{text}
</AntCheckbox>
</FormItem>
);
}
export default Checkbox as FC<CheckboxProps>;

View File

@ -1,8 +0,0 @@
import { ConfigProvider } from 'antd';
import ru_RU from 'antd/lib/locale/ru_RU';
function AntdConfig({ children }) {
return <ConfigProvider locale={ru_RU}>{children}</ConfigProvider>;
}
export default AntdConfig;

View File

@ -0,0 +1,14 @@
import { ConfigProvider } from 'antd';
import type { ConfigProviderProps } from 'antd/es/config-provider';
import ru_RU from 'antd/lib/locale/ru_RU';
import type { ReactNode } from 'react';
function AntdConfig({ children, ...config }: ConfigProviderProps & { children: ReactNode }) {
return (
<ConfigProvider {...config} locale={ru_RU}>
{children}
</ConfigProvider>
);
}
export default AntdConfig;

View File

@ -1,27 +0,0 @@
import type { BaseElementProps } from './types';
import type { InputProps } from 'antd';
import { Form, Input as AntInput } from 'antd';
import type { ChangeEvent, FC } from 'react';
const { Item: FormItem } = Form;
function Input({
value,
setValue,
status,
validateStatus,
help,
...props
}: BaseElementProps<string>) {
function handleChange(event: ChangeEvent<HTMLInputElement>) {
setValue(event.target.value);
}
return (
<FormItem hasFeedback help={help} validateStatus={validateStatus}>
<AntInput disabled={status === 'Disabled'} onChange={handleChange} value={value} {...props} />
</FormItem>
);
}
export default Input as FC<InputProps>;

View File

@ -1,43 +1,6 @@
import type { BaseElementProps } from './types';
import type { InputNumberProps as AntInputNumberProps } from 'antd';
import { Form, InputNumber as AntInputNumber } from 'antd';
import type { FC } from 'react';
import type { InputNumberProps } from 'antd';
const { Item: FormItem } = Form;
type InputNumberProps = AntInputNumberProps<number>;
function InputNumber({
setValue,
status,
validateStatus,
help,
...props
}: BaseElementProps<number>) {
function handleChange(value: number | null) {
if (value) {
setValue(value);
} else {
setValue(0);
}
}
return (
<FormItem hasFeedback help={help} validateStatus={validateStatus}>
<AntInputNumber
disabled={status === 'Disabled'}
onChange={handleChange}
// eslint-disable-next-line react/forbid-component-props
style={{
width: '100%',
}}
{...props}
/>
</FormItem>
);
}
export default InputNumber as FC<InputNumberProps>;
type Formatter = NonNullable<InputNumberProps['formatter']>;
export function createFormatter(options: Intl.NumberFormatOptions) {
const format = Intl.NumberFormat('ru', options).format;
@ -46,12 +9,12 @@ export function createFormatter(options: Intl.NumberFormatOptions) {
return ((value, { userTyping }) => {
if (userTyping) {
if (options.minimumFractionDigits && options.minimumFractionDigits <= 2) {
return defaultFormat(value || 0);
return defaultFormat((value || 0) as number);
}
return value || 0;
}
return format(value || 0);
}) as NonNullable<InputNumberProps['formatter']>;
return format((value || 0) as number);
}) as Formatter;
}

View File

@ -1,27 +1,18 @@
import type { BaseElementProps } from './types';
import type { ButtonProps } from 'antd';
import { Button as AntButton } from 'antd';
import type { BaseButtonProps } from 'antd/lib/button/button';
import type { FC } from 'react';
type ElementProps = {
text: string;
};
type LinkProps = BaseButtonProps & ElementProps;
function Link({ value, status, text, ...props }: BaseElementProps<string> & ElementProps) {
export default function Link({ href, ...props }: ButtonProps) {
return (
<AntButton
disabled={status === 'Disabled' || !value}
href={value}
loading={status === 'Loading'}
rel="noopener"
target="_blank"
type="link"
onClick={() => {
window.open(href, '_blank')?.focus();
}}
{...props}
>
{text}
{props.children}
</AntButton>
);
}
export default Link as FC<LinkProps>;

View File

@ -1,51 +1,34 @@
import type { BaseElementProps, BaseOption } from './types';
import type { RadioChangeEvent, RadioGroupProps, SpaceProps } from 'antd';
import { Form, Radio as AntRadio, Space } from 'antd';
import type { FC } from 'react';
import { Radio as AntRadio, Space } from 'antd';
import type { CheckboxOptionType } from 'antd/lib/checkbox';
import type { Key } from 'react';
const { Item: FormItem } = Form;
type ElementProps = BaseElementProps<string | null> & {
options: BaseOption[];
type RadioProps = Omit<RadioGroupProps, 'onChange' | 'options'> & {
onChange?: (value: unknown) => void;
options?: CheckboxOptionType[];
spaceProps?: SpaceProps;
};
type RadioProps = RadioGroupProps & {
spaceProps?: SpaceProps;
};
function Radio({
export default function Radio({
value = null,
setValue,
options,
status,
validateStatus,
help,
spaceProps,
onChange,
...props
}: ElementProps) {
}: RadioProps) {
function handleChange(event: RadioChangeEvent) {
setValue(event.target.value);
if (onChange) onChange(event.target.value);
}
return (
<FormItem hasFeedback help={help} validateStatus={validateStatus}>
<AntRadio.Group
disabled={status === 'Disabled'}
onChange={handleChange}
value={value}
{...props}
>
<Space {...spaceProps}>
{options.map((option) => (
<AntRadio key={option.value} value={option.value}>
{option.label}
</AntRadio>
))}
</Space>
</AntRadio.Group>
</FormItem>
<AntRadio.Group onChange={handleChange} value={value} {...props}>
<Space {...spaceProps}>
{options?.map((option) => (
<AntRadio key={option.value as Key} value={option.value}>
{option.label}
</AntRadio>
))}
</Space>
</AntRadio.Group>
);
}
export default Radio as FC<RadioProps>;

View File

@ -1,36 +1,10 @@
import type { BaseElementProps, BaseOption } from './types';
import type { SegmentedProps } from 'antd';
import { Form, Segmented as AntSegmented } from 'antd';
import type { FC } from 'react';
import { Segmented as AntSegmented } from 'antd';
const { Item: FormItem } = Form;
type ElementProps = BaseElementProps<number | string> & {
options: BaseOption[];
type ElementProps = Omit<SegmentedProps, 'options' | 'ref'> & {
options?: SegmentedProps['options'];
};
function Segmented({
value,
setValue,
options,
status,
validateStatus,
help,
...props
}: ElementProps) {
return (
<FormItem hasFeedback help={help} validateStatus={validateStatus}>
<AntSegmented
disabled={status === 'Disabled'}
onChange={setValue}
onResize={undefined}
onResizeCapture={undefined}
options={options}
value={value}
{...props}
/>
</FormItem>
);
export default function Segmented({ options = [], ...props }: ElementProps) {
return <AntSegmented {...props} options={options} />;
}
export default Segmented as FC<Partial<SegmentedProps>>;

View File

@ -1,24 +1,8 @@
import type { BaseElementProps, BaseOption } from './types';
import type { SelectProps } from 'antd';
import { Form, Select as AntSelect } from 'antd';
import type { FC } from 'react';
import { Select as AntSelect } from 'antd';
import { useMemo } from 'react';
const { Item: FormItem } = Form;
type ElementProps = {
options: BaseOption[];
};
function Select({
value = null,
setValue,
options = [],
status,
validateStatus,
help,
...props
}: BaseElementProps<string | null> & ElementProps) {
export default function Select({ options = [], ...props }: SelectProps<string | null>) {
const optionsWithNull = useMemo(
() => [
{
@ -30,19 +14,5 @@ function Select({
[options]
);
return (
<FormItem hasFeedback help={help} validateStatus={validateStatus}>
<AntSelect
disabled={status === 'Disabled'}
loading={status === 'Loading'}
onChange={setValue}
optionFilterProp="children"
options={optionsWithNull}
value={value}
{...props}
/>
</FormItem>
);
return <AntSelect options={optionsWithNull} {...props} />;
}
export default Select as FC<SelectProps>;

View File

@ -1,23 +0,0 @@
import type { BaseElementProps } from './types';
import type { SwitchProps } from 'antd';
import { Form, Switch as AntSwitch } from 'antd';
import type { FC } from 'react';
const { Item: FormItem } = Form;
function Switch({
value,
setValue,
status,
validateStatus,
help,
...props
}: BaseElementProps<boolean>) {
return (
<FormItem hasFeedback help={help} validateStatus={validateStatus}>
<AntSwitch checked={value} disabled={status === 'Disabled'} onChange={setValue} {...props} />
</FormItem>
);
}
export default Switch as FC<SwitchProps>;

View File

@ -1,19 +1,9 @@
import type { FC, ReactNode } from 'react';
import styled from 'styled-components';
import { Typography } from 'antd';
import type { ComponentProps, ReactNode } from 'react';
const Span = styled.span`
margin-bottom: 18px;
font-size: 0.85rem;
`;
type TextProps = {
children: ReactNode;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
value: any;
};
function Text({ value, ...props }: TextProps) {
return <Span {...props}>{value || props.children}</Span>;
export default function Text({
value = '',
...props
}: ComponentProps<(typeof Typography)['Text']> & { value: ReactNode }) {
return <Typography.Text>{value || props.children}</Typography.Text>;
}
export default Text as FC<TextProps>;

View File

@ -7,26 +7,28 @@ message.config({
notification.config({
placement: 'bottomRight',
style: { borderRadius: 2 },
});
export { default as Button } from './Button';
export { default as Checkbox } from './Checkbox';
export { default as AntdConfig } from './Config';
export { default as Input } from './Input';
export { default as InputNumber } from './InputNumber';
export { default as Link } from './Link';
export { default as Radio } from './Radio';
export { default as Segmented } from './Segmented';
export { default as Select } from './Select';
export { default as Switch } from './Switch';
export { default as Text } from './Text';
export {
Alert,
Badge,
Button,
Checkbox,
Divider,
Form,
Input,
InputNumber,
message,
notification,
Result,
Switch,
Table,
Tabs,
Tag,

View File

@ -1 +0,0 @@
@import 'antd/dist/antd.less';

View File

@ -1,15 +1,3 @@
import type { ValidateStatus } from 'antd/es/form/FormItem';
export type Status = 'Default' | 'Disabled' | 'Hidden' | 'Loading';
export type BaseElementProps<Value> = {
help?: string;
setValue: (value: Value) => void;
status?: Status;
validateStatus?: ValidateStatus;
value: Value;
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type BaseOption<Value = any> = {
label: string;

View File

@ -19,8 +19,8 @@
"typescript": "^4.9.5"
},
"dependencies": {
"@ant-design/icons": "4.8.0",
"antd": "4.24.7",
"@ant-design/icons": "^5.0.1",
"antd": "^5.4.7",
"rebass": "^4.0.7",
"styled-components": "^5.3.6",
"use-debounce": "^9.0.3"

547
yarn.lock
View File

@ -15,39 +15,52 @@
"@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9"
"@ant-design/colors@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298"
integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==
"@ant-design/colors@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.0.0.tgz#eb7eecead124c3533aea05d61254f0a17f2b61b3"
integrity sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==
dependencies:
"@ctrl/tinycolor" "^3.4.0"
"@ant-design/cssinjs@^1.9.1":
version "1.9.1"
resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.9.1.tgz#cc2e602afab14c795af20fd22b3f9d5ccf304d8a"
integrity sha512-CZt1vCMs/sY7RoacYuIkZwQmb8Bhp99ReNNE9Y8lnUzik8fmCdKAQA7ecvVOFwmNFdcBHga7ye/XIRrsbkiqWw==
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"
"@ant-design/icons-svg@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz#8630da8eb4471a4aabdaed7d1ff6a97dcb2cf05a"
integrity sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==
"@ant-design/icons@4.8.0", "@ant-design/icons@^4.7.0":
version "4.8.0"
resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-4.8.0.tgz#3084e2bb494cac3dad6c0392f77c1efc90ee1fa4"
integrity sha512-T89P2jG2vM7OJ0IfGx2+9FC5sQjtTzRSz+mCHTXkFn/ELZc2YpfStmYHmqzq2Jx55J0F7+O6i5/ZKFSVNWCKNg==
"@ant-design/icons@^5.0.0", "@ant-design/icons@^5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.0.1.tgz#febb1fdc5776f58187b2c953ac9a4496069d045b"
integrity sha512-ZyF4ksXCcdtwA/1PLlnFLcF/q8/MhwxXhKHh4oCHDA4Ip+ZzAHoICtyp4wZWfiCVDP0yuz3HsjyvuldHFb3wjA==
dependencies:
"@ant-design/colors" "^6.0.0"
"@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"
"@ant-design/react-slick@~0.29.1":
version "0.29.2"
resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-0.29.2.tgz#53e6a7920ea3562eebb304c15a7fc2d7e619d29c"
integrity sha512-kgjtKmkGHa19FW21lHnAfyyH9AAoh35pBdcJ53rHmQ3O+cfFHGHnUbj/HFrRNJ5vIts09FKJVAD8RpaC+RaWfA==
"@ant-design/react-slick@~1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-1.0.1.tgz#af10e67ef9a233df5610c36313a5c804ccc2ae6b"
integrity sha512-ARM0TmpGdDuUVE10NwUCENQlJSInNKo5NiBjL5szu5BxWNEHNwQMcDrlVCqFbkvFLy+2CvywW8Y59QJtC0YDag==
dependencies:
"@babel/runtime" "^7.10.4"
classnames "^2.2.5"
json2mq "^0.2.0"
lodash "^4.17.21"
resize-observer-polyfill "^1.5.1"
throttle-debounce "^5.0.0"
"@apollo/client@^3.7.9":
version "3.7.9"
@ -626,6 +639,13 @@
dependencies:
regenerator-runtime "^0.13.11"
"@babel/runtime@^7.21.0":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200"
integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==
dependencies:
regenerator-runtime "^0.13.11"
"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
@ -672,7 +692,7 @@
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
"@ctrl/tinycolor@^3.4.0":
"@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.6.0":
version "3.6.0"
resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz#53fa5fe9c34faee89469e48f91d51a3766108bc8"
integrity sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==
@ -708,7 +728,7 @@
"@emotion/utils" "0.11.3"
babel-plugin-emotion "^10.0.27"
"@emotion/hash@0.8.0":
"@emotion/hash@0.8.0", "@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==
@ -781,7 +801,7 @@
resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.4":
"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.4", "@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==
@ -1710,6 +1730,30 @@
tiny-glob "^0.2.9"
tslib "^2.4.0"
"@rc-component/context@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@rc-component/context/-/context-1.3.0.tgz#608ccf0abcbec9406751b17a4b35db08e481c110"
integrity sha512-6QdaCJ7Wn5UZLJs15IEfqy4Ru3OaL5ctqpQYWd5rlfV9wwzrzdt6+kgAQZV/qdB0MUPN4nhyBfRembQCIvBf+w==
dependencies:
"@babel/runtime" "^7.10.1"
rc-util "^5.27.0"
"@rc-component/mini-decimal@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@rc-component/mini-decimal/-/mini-decimal-1.0.1.tgz#e5dbc20a6a5b0e234d279bc71ce730ab865d3910"
integrity sha512-9N8nRk0oKj1qJzANKl+n9eNSMUGsZtjwNuDCiZ/KA+dt1fE3zq5x2XxclRcAbOIXnZcJ53ozP2Pa60gyELXagA==
dependencies:
"@babel/runtime" "^7.18.0"
"@rc-component/mutate-observer@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@rc-component/mutate-observer/-/mutate-observer-1.0.0.tgz#ce99af3239ed9c74ee3e7302f1c67098de920b46"
integrity sha512-okqRJSfNisXdI6CUeOLZC5ukBW/8kir2Ii4PJiKpUt+3+uS7dxwJUMxsUZquxA1rQuL8YcEmKVp/TCnR+yUdZA==
dependencies:
"@babel/runtime" "^7.18.0"
classnames "^2.3.2"
rc-util "^5.24.4"
"@rc-component/portal@^1.0.0-6", "@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.2":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.0.tgz#6b94450d2c2b00d50b141bd7a0be23bd96503dbe"
@ -1719,6 +1763,39 @@
classnames "^2.3.2"
rc-util "^5.24.4"
"@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.1.0":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.1.tgz#1a30ffe51c240b54360cba8e8bfc5d1f559325c4"
integrity sha512-m8w3dFXX0H6UkJ4wtfrSwhe2/6M08uz24HHrF8pWfAXPwA9hwCuTE5per/C86KwNLouRpwFGcr7LfpHaa1F38g==
dependencies:
"@babel/runtime" "^7.18.0"
classnames "^2.3.2"
rc-util "^5.24.4"
"@rc-component/tour@~1.8.0":
version "1.8.0"
resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.8.0.tgz#fda8b533e36db1d4254e3ffbcefe3395c346eb1c"
integrity sha512-rrRGioHTLQlGca27G2+lw7QpRb3uuMYCUIJjj31/B44VCJS0P2tqYhOgtzvWQmaLMlWH3ZlpzotkKX13NT4XEA==
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.0.4", "@rc-component/trigger@^1.3.6", "@rc-component/trigger@^1.5.0", "@rc-component/trigger@^1.7.0":
version "1.12.1"
resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.12.1.tgz#92ba66d37d0ed50983683d4e09fe10179995d636"
integrity sha512-i6xSkFuINuiyM5UgYM1ir051R78YdyCVCzezZEmUg6L8m66CpqrpNUbx6LKbxCkeeZV5wzor7iYHmvSRh7tRuA==
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"
"@repeaterjs/repeater@3.0.4", "@repeaterjs/repeater@^3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca"
@ -2482,54 +2559,58 @@ ansi-styles@^6.0.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
antd@4.24.7:
version "4.24.7"
resolved "https://registry.yarnpkg.com/antd/-/antd-4.24.7.tgz#ad90cc2d6225fe3e0030aeccdc64de6c26edc3e7"
integrity sha512-Qr3AYkeqpd3i/c6M7pjca7Y6XlaIv/p6gD3aqe7/0o8Ueg50G7Aeh+TOaiUfXLGDhnVoNEdaVdDiv8aIaoWB5A==
antd@^5.4.7:
version "5.4.7"
resolved "https://registry.yarnpkg.com/antd/-/antd-5.4.7.tgz#8655f03fd7a3488f3d48327fe178e3d7e06a456d"
integrity sha512-kFClbdlrultV1SJh8oxHSCCsO3iLGc6QFu0IIHGNuC4JHkDc2Ed94sk7XSmOTcENLcTd7BQYP0A4nK0VERp7vA==
dependencies:
"@ant-design/colors" "^6.0.0"
"@ant-design/icons" "^4.7.0"
"@ant-design/react-slick" "~0.29.1"
"@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.4.0"
"@ctrl/tinycolor" "^3.6.0"
"@rc-component/mutate-observer" "^1.0.0"
"@rc-component/tour" "~1.8.0"
"@rc-component/trigger" "^1.7.0"
classnames "^2.2.6"
copy-to-clipboard "^3.2.0"
lodash "^4.17.21"
moment "^2.29.2"
rc-cascader "~3.7.0"
rc-checkbox "~2.3.0"
rc-collapse "~3.4.2"
rc-dialog "~9.0.2"
rc-drawer "~6.1.0"
dayjs "^1.11.1"
qrcode.react "^3.1.0"
rc-cascader "~3.10.0"
rc-checkbox "~3.0.0"
rc-collapse "~3.5.2"
rc-dialog "~9.1.0"
rc-drawer "~6.1.1"
rc-dropdown "~4.0.0"
rc-field-form "~1.27.0"
rc-image "~5.13.0"
rc-input "~0.1.4"
rc-input-number "~7.3.9"
rc-mentions "~1.13.1"
rc-menu "~9.8.0"
rc-motion "^2.6.1"
rc-notification "~4.6.0"
rc-pagination "~3.2.0"
rc-picker "~2.7.0"
rc-field-form "~1.30.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.0"
rc-pagination "~3.3.1"
rc-picker "~3.6.1"
rc-progress "~3.4.1"
rc-rate "~2.9.0"
rc-rate "~2.10.0"
rc-resize-observer "^1.2.0"
rc-segmented "~2.1.0"
rc-select "~14.1.13"
rc-slider "~10.0.0"
rc-steps "~5.0.0-alpha.2"
rc-switch "~3.2.0"
rc-table "~7.26.0"
rc-tabs "~12.5.0"
rc-textarea "~0.4.5"
rc-tooltip "~5.2.0"
rc-segmented "~2.1.2"
rc-select "~14.4.3"
rc-slider "~10.1.0"
rc-steps "~6.0.0"
rc-switch "~4.1.0"
rc-table "~7.31.0"
rc-tabs "~12.5.6"
rc-textarea "~1.2.2"
rc-tooltip "~6.0.0"
rc-tree "~5.7.0"
rc-tree-select "~5.5.0"
rc-trigger "^5.2.10"
rc-tree-select "~5.8.0"
rc-upload "~4.3.0"
rc-util "^5.22.5"
scroll-into-view-if-needed "^2.2.25"
rc-util "^5.27.0"
scroll-into-view-if-needed "^3.0.3"
throttle-debounce "^5.0.0"
anymatch@^3.0.3, anymatch@~3.1.2:
version "3.1.3"
@ -3264,15 +3345,6 @@ cliui@^8.0.1:
strip-ansi "^6.0.1"
wrap-ansi "^7.0.0"
clone-deep@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
dependencies:
is-plain-object "^2.0.4"
kind-of "^6.0.2"
shallow-clone "^3.0.0"
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
@ -3368,10 +3440,10 @@ component-emitter@^1.2.1:
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
compute-scroll-into-view@^1.0.20:
version "1.0.20"
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43"
integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
compute-scroll-into-view@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz#c418900a5c56e2b04b885b54995df164535962b1"
integrity sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==
concat-map@0.0.1:
version "0.0.1"
@ -3550,6 +3622,11 @@ csstype@^2.5.7:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e"
integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==
csstype@^3.0.10:
version "3.1.2"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
csstype@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9"
@ -3574,12 +3651,7 @@ dataloader@2.2.2, dataloader@^2.2.2:
resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0"
integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==
date-fns@2.x:
version "2.29.3"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
dayjs@1.x, dayjs@^1.11.7:
dayjs@^1.11.1, dayjs@^1.11.7:
version "1.11.7"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2"
integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
@ -7001,11 +7073,6 @@ mobx@^6.8.0:
resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.8.0.tgz#59051755fdb5c8a9f3f2e0a9b6abaf86bab7f843"
integrity sha512-+o/DrHa4zykFMSKfS8Z+CPSEg5LW9tSNGTuN8o6MF1GKxlfkSHSeJn5UtgxvPkGgaouplnrLXCF+duAsmm6FHQ==
moment@^2.24.0, moment@^2.29.2:
version "2.29.4"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@ -7097,18 +7164,6 @@ needle@^3.1.0:
iconv-lite "^0.6.3"
sax "^1.2.4"
next-composed-plugins@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/next-composed-plugins/-/next-composed-plugins-1.0.1.tgz#0744d658d4e10453c1ffb3654af31a500dae1c20"
integrity sha512-iz7qeNNu/07Xh6QxOfuRB+05KN8/eKSBh/FJc6WqPvbfZMbMGXou7ZLWiAZjnKu+Zvk5mwLm+6nNOXW9B+mhKw==
next-with-less@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/next-with-less/-/next-with-less-2.0.5.tgz#901dc94918bb19f08e879a5bc7b11b44c9351f6c"
integrity sha512-1MJDcgFOPucFPCMXV7rTqcWiLI2nLSBi8bA6msvkiNLhYyZMXaFl4MkyYf7eOEUUEtA/c5eD0grPhbcDkrKqPQ==
dependencies:
clone-deep "^4.0.1"
next@^13.2.1:
version "13.2.1"
resolved "https://registry.yarnpkg.com/next/-/next-13.2.1.tgz#34d823f518632b36379863228ed9f861c335b9c0"
@ -7809,6 +7864,11 @@ pvutils@^1.1.3:
resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3"
integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==
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==
querystringify@^2.1.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
@ -7850,41 +7910,41 @@ rc-align@^4.0.0:
rc-util "^5.26.0"
resize-observer-polyfill "^1.5.1"
rc-cascader@~3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.7.0.tgz#98134df578ce1cca22be8fb4319b04df4f3dca36"
integrity sha512-SFtGpwmYN7RaWEAGTS4Rkc62ZV/qmQGg/tajr/7mfIkleuu8ro9Hlk6J+aA0x1YS4zlaZBtTcSaXM01QMiEV/A==
rc-cascader@~3.10.0:
version "3.10.3"
resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.10.3.tgz#5ebfef3930ead8f39b217db9415c88487d664e03"
integrity sha512-RBK1u59a2m/RKY8F+UvW9pUXdPv7bCxh2s2DAb81QjXX7TbwSX92Y0tICYo/Bo8fRsAh2g+7RXVf488/98ijkA==
dependencies:
"@babel/runtime" "^7.12.5"
array-tree-filter "^2.1.0"
classnames "^2.3.1"
rc-select "~14.1.0"
rc-select "~14.4.0"
rc-tree "~5.7.0"
rc-util "^5.6.1"
rc-checkbox@~2.3.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-2.3.2.tgz#f91b3678c7edb2baa8121c9483c664fa6f0aefc1"
integrity sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==
rc-checkbox@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-3.0.1.tgz#f978771329be339d479cd81465eb2e2f8c82bc87"
integrity sha512-k7nxDWxYF+jDI0ZcCvuvj71xONmWRVe5+1MKcERRR9MRyP3tZ69b+yUCSXXh+sik4/Hc9P5wHr2nnUoGS2zBjA==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
classnames "^2.3.2"
rc-util "^5.25.2"
rc-collapse@~3.4.2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.4.2.tgz#1310be7ad4cd0dcfc622c45f6c3b5ffdee403ad7"
integrity sha512-jpTwLgJzkhAgp2Wpi3xmbTbbYExg6fkptL67Uu5LCRVEj6wqmy0DHTjjeynsjOLsppHGHu41t1ELntZ0lEvS/Q==
rc-collapse@~3.5.2:
version "3.5.2"
resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.5.2.tgz#abb7d144ad55bd9cbd201fa95bc5b271da2aa7c3"
integrity sha512-/TNiT3DW1t3sUCiVD/DPUYooJZ3BLA93/2rZsB3eM2bGJCCla2X9D2E4tgm7LGMQGy5Atb2lMUn2FQuvQNvavQ==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-motion "^2.3.4"
rc-util "^5.2.1"
shallowequal "^1.1.0"
rc-util "^5.27.0"
rc-dialog@~9.0.0, rc-dialog@~9.0.2:
version "9.0.2"
resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.0.2.tgz#aadfebdeba145f256c1fac9b9f509f893cdbb5b8"
integrity sha512-s3U+24xWUuB6Bn2Lk/Qt6rufy+uT+QvWkiFhNBcO9APLxcFFczWamaq7x9h8SCuhfc1nHcW4y8NbMsnAjNnWyg==
rc-dialog@~9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.1.0.tgz#6bf6fcc0453503b7643e54a5a445e835e3850649"
integrity sha512-5ry+JABAWEbaKyYsmITtrJbZbJys8CtMyzV8Xn4LYuXMeUx5XVHNyJRoqLFE4AzBuXXzOWeaC49cg+XkxK6kHA==
dependencies:
"@babel/runtime" "^7.10.1"
"@rc-component/portal" "^1.0.0-8"
@ -7892,10 +7952,10 @@ rc-dialog@~9.0.0, rc-dialog@~9.0.2:
rc-motion "^2.3.0"
rc-util "^5.21.0"
rc-drawer@~6.1.0:
version "6.1.3"
resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-6.1.3.tgz#4b2277db09f059be7144dc82d5afede9c2ab2191"
integrity sha512-AvHisO90A+xMLMKBw2zs89HxjWxusM2BUABlgK60RhweIHF8W/wk0hSOrxBlUXoA9r1F+10na3g6GZ97y1qDZA==
rc-drawer@~6.1.1:
version "6.1.5"
resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-6.1.5.tgz#c4137b944c16b7c179d0dba6f06ebe54f9311ec8"
integrity sha512-MDRomQXFi+tvDuwsRAddJ2Oy2ayLCZ29weMzp3rJFO9UNEVLEVV7nuyx5lEgNJIdM//tE6wWQV95cTUiMVqD6w==
dependencies:
"@babel/runtime" "^7.10.1"
"@rc-component/portal" "^1.0.0-6"
@ -7913,55 +7973,57 @@ rc-dropdown@~4.0.0:
rc-trigger "^5.3.1"
rc-util "^5.17.0"
rc-field-form@~1.27.0:
version "1.27.4"
resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.27.4.tgz#53600714af5b28c226c70d34867a8c52ccd64d44"
integrity sha512-PQColQnZimGKArnOh8V2907+VzDCXcqtFvHgevDLtqWc/P7YASb/FqntSmdS8q3VND5SHX3Y1vgMIzY22/f/0Q==
rc-field-form@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.30.0.tgz#f964bfbea820cc853a8ceb7b0b37a1dca5e64257"
integrity sha512-hCBa3/+m9SSuEPILSsxB/wd3ZFEmNTQfIhThhMaMp05fLwDDw+2K26lEZf5NuChQlx90VVNUOYmTslH6Ks4tpA==
dependencies:
"@babel/runtime" "^7.18.0"
async-validator "^4.1.0"
rc-util "^5.8.0"
rc-image@~5.13.0:
version "5.13.0"
resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-5.13.0.tgz#1ed9b852a40b5eff34786ba7d2f0e9d26eeab874"
integrity sha512-iZTOmw5eWo2+gcrJMMcnd7SsxVHl3w5xlyCgsULUdJhJbnuI8i/AL0tVOsE7aLn9VfOh1qgDT3mC2G75/c7mqg==
rc-image@~5.16.0:
version "5.16.0"
resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-5.16.0.tgz#79d5864bc1c5d66c4620176cc131d34cd4f4bea8"
integrity sha512-11DOye57IgTXh2yTsmxFNynZJG3tdx8RZnnaqb38eYWrBPPyhVHIuURxyiSZ8B68lEUAggR7SBA0Zb95KP/CyQ==
dependencies:
"@babel/runtime" "^7.11.2"
"@rc-component/portal" "^1.0.2"
classnames "^2.2.6"
rc-dialog "~9.0.0"
rc-dialog "~9.1.0"
rc-motion "^2.6.2"
rc-util "^5.0.6"
rc-input-number@~7.3.9:
version "7.3.11"
resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-7.3.11.tgz#c7089705a220e1a59ba974fabf89693e00dd2442"
integrity sha512-aMWPEjFeles6PQnMqP5eWpxzsvHm9rh1jQOWXExUEIxhX62Fyl/ptifLHOn17+waDG1T/YUb6flfJbvwRhHrbA==
rc-input-number@~7.4.0:
version "7.4.2"
resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-7.4.2.tgz#7c52d26b986461aa16e486d469dc0476d97c6ea3"
integrity sha512-yGturTw7WGP+M1GbJ+UTAO7L4buxeW6oilhL9Sq3DezsRS8/9qec4UiXUbeoiX9bzvRXH11JvgskBtxSp4YSNg==
dependencies:
"@babel/runtime" "^7.10.1"
"@rc-component/mini-decimal" "^1.0.1"
classnames "^2.2.5"
rc-util "^5.23.0"
rc-util "^5.28.0"
rc-input@~0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-0.1.4.tgz#45cb4ba209ae6cc835a2acb8629d4f8f0cb347e0"
integrity sha512-FqDdNz+fV2dKNgfXzcSLKvC+jEs1709t7nD+WdfjrdSaOcefpgc7BUJYadc3usaING+b7ediMTfKxuJBsEFbXA==
rc-input@~1.0.0, rc-input@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.0.4.tgz#2f2c73c884f41e80685bb2eb7b9d5533e8540a77"
integrity sha512-clY4oneVHRtKHYf/HCxT/MO+4BGzCIywSNLosXWOm7fcQAS0jQW7n0an8Raa8JMB8kpxc8m28p7SNwFZmlMj6g==
dependencies:
"@babel/runtime" "^7.11.1"
classnames "^2.2.1"
rc-util "^5.18.1"
rc-mentions@~1.13.1:
version "1.13.1"
resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-1.13.1.tgz#c884b70e1505a197f1b32a7c6b39090db6992a72"
integrity sha512-FCkaWw6JQygtOz0+Vxz/M/NWqrWHB9LwqlY2RtcuFqWJNFK9njijOOzTSsBGANliGufVUzx/xuPHmZPBV0+Hgw==
rc-mentions@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.2.0.tgz#27900ec04d067c58205309897efd190f5d8f4ac8"
integrity sha512-R7ncCldr02uKgJBBPlXdtnOGQIjZ9C3uoIMi4fabU3CPFdmefYlNF6QM4u2AzgcGt8V0KkoHTN5T6HPdUpet8g==
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 "^0.4.0"
rc-trigger "^5.0.4"
rc-textarea "~1.2.0"
rc-util "^5.22.5"
rc-menu@~9.8.0:
@ -7976,7 +8038,19 @@ rc-menu@~9.8.0:
rc-trigger "^5.1.2"
rc-util "^5.27.0"
rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.2.0, 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-menu@~9.8.3:
version "9.8.4"
resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.8.4.tgz#58bf19d471e3c74ff4bcfdb0f02a3826ebe2553b"
integrity sha512-lmw2j8I2fhdIzHmC9ajfImfckt0WDb2KVJJBBRIsxPEw2kGkEfjLMUoB1NgiNT/Q5cC8PdjGOGQjHJIJMwyNMw==
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"
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:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.6.3.tgz#e6d8ca06591c2c1bcd3391a8e7a822ebc4d94e9c"
integrity sha512-xFLkes3/7VL/J+ah9jJruEW/Akbx5F6jVa2wG5o/ApGKQKSOd5FR3rseHLL9+xtJg4PmCwo6/1tqhDO/T+jFHA==
@ -7985,14 +8059,23 @@ rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.2.0, rc-motion@^2.3.0, rc-motio
classnames "^2.2.1"
rc-util "^5.21.0"
rc-notification@~4.6.0:
version "4.6.1"
resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-4.6.1.tgz#068e8674f4bd7926a447eca512915d4b41b15c91"
integrity sha512-NSmFYwrrdY3+un1GvDAJQw62Xi9LNMSsoQyo95tuaYrcad5Bn9gJUL8AREufRxSQAQnr64u3LtP3EUyLYT6bhw==
rc-motion@^2.6.0, rc-motion@^2.7.3:
version "2.7.3"
resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.7.3.tgz#126155bb3e687174fb3b92fddade2835c963b04d"
integrity sha512-2xUvo8yGHdOHeQbdI8BtBsCIrWKchEmFEIskf0nmHtJsou+meLd/JE+vnvSX2JxcBrJtXY2LuBpxAOxrbY/wMQ==
dependencies:
"@babel/runtime" "^7.11.1"
classnames "^2.2.1"
rc-util "^5.21.0"
rc-notification@~5.0.0:
version "5.0.4"
resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.0.4.tgz#4ad33d4aa291528fee9095b0be80ae41f1728a38"
integrity sha512-3535oellIRlt1LspERfK8yvCqb8Gio3R02rULciaSc1xe3H7ArTU/khlUTv1ddGzua4HhmF4D4Rwz/+mBxETvg==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-motion "^2.2.0"
rc-motion "^2.6.0"
rc-util "^5.20.1"
rc-overflow@^1.0.0, rc-overflow@^1.2.8:
@ -8005,27 +8088,23 @@ rc-overflow@^1.0.0, rc-overflow@^1.2.8:
rc-resize-observer "^1.0.0"
rc-util "^5.19.2"
rc-pagination@~3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.2.0.tgz#4f2fdba9fdac0f48e5c9fb1141973818138af7e1"
integrity sha512-5tIXjB670WwwcAJzAqp2J+cOBS9W3cH/WU1EiYwXljuZ4vtZXKlY2Idq8FZrnYBz8KhN3vwPo9CoV/SJS6SL1w==
rc-pagination@~3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.3.1.tgz#38e364674adf2a753a4fa26e0d9d88ebe523ed0f"
integrity sha512-eI4dSeB3OrFxll7KzWa3ZH63LV2tHxt0AUmZmDwuI6vc3CK5lZhaKUYq0fRowb5586hN+L26j5WZoSz9cwEfjg==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
rc-picker@~2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-2.7.0.tgz#3c19881da27a0c5ee4c7e7504e21b552bd43a94c"
integrity sha512-oZH6FZ3j4iuBxHB4NvQ6ABRsS2If/Kpty1YFFsji7/aej6ruGmfM7WnJWQ88AoPfpJ++ya5z+nVEA8yCRYGKyw==
rc-picker@~3.6.1:
version "3.6.2"
resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-3.6.2.tgz#68d13af7d240e792769a306ed6447e66e47040aa"
integrity sha512-acLNCi2WTNAuvTtcEzKp72mU15ni0sqrIKVlEcj04KgLZxhlVPMabCS+Sc8VuOCPJbOcW0XeOydbNnJbWTvzxg==
dependencies:
"@babel/runtime" "^7.10.1"
"@rc-component/trigger" "^1.5.0"
classnames "^2.2.1"
date-fns "2.x"
dayjs "1.x"
moment "^2.24.0"
rc-trigger "^5.0.4"
rc-util "^5.4.0"
shallowequal "^1.1.0"
rc-util "^5.27.0"
rc-progress@~3.4.1:
version "3.4.1"
@ -8036,16 +8115,16 @@ rc-progress@~3.4.1:
classnames "^2.2.6"
rc-util "^5.16.1"
rc-rate@~2.9.0:
version "2.9.2"
resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.9.2.tgz#4a58965d1ecf91896ebae01d458b59056df0b4ea"
integrity sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g==
rc-rate@~2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.10.0.tgz#b16fd906c13bfc26b4776e27a14d13d06d50c635"
integrity sha512-TCjEpKPeN1m0EnGDDbb1KyxjNTJRzoReiPdtbrBJEey4Ryf/UGOQ6vqmz2yC6DJdYVDVUoZPdoz043ryh0t/nQ==
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.2.0:
rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.2.0, rc-resize-observer@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz#b61b9f27048001243617b81f95e53d7d7d7a6a3d"
integrity sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==
@ -8055,7 +8134,7 @@ rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.2.0:
rc-util "^5.27.0"
resize-observer-polyfill "^1.5.1"
rc-segmented@~2.1.0:
rc-segmented@~2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.1.2.tgz#14c9077a1dae9c2ccb2ef5fbc5662c1c48c7ce8e"
integrity sha512-qGo1bCr83ESXpXVOCXjFe1QJlCAQXyi9KCiy8eX3rIMYlTeJr/ftySIaTnYsitL18SvWf5ZEHsfqIWoX0EMfFQ==
@ -8065,62 +8144,61 @@ rc-segmented@~2.1.0:
rc-motion "^2.4.4"
rc-util "^5.17.0"
rc-select@~14.1.0, rc-select@~14.1.13:
version "14.1.16"
resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.1.16.tgz#0cc4b5a1fc551a2db7c96bc1ece0896317ecdd47"
integrity sha512-71XLHleuZmufpdV2vis5oituRkhg2WNvLpVMJBGWRar6WGAVOHXaY9DR5HvwWry3EGTn19BqnL6Xbybje6f8YA==
rc-select@~14.4.0, rc-select@~14.4.3:
version "14.4.3"
resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.4.3.tgz#68d7f1b6bcb41543f69901951facd5e097fb835d"
integrity sha512-qoz4gNqm3SN+4dYKSCRiRkxKSEEdbS3jC6gdFYoYwEjDZ9sdQFo5jHlfQbF+hhai01HOoj1Hf8Gq6tpUvU+Gmw==
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-trigger "^5.0.4"
rc-util "^5.16.1"
rc-virtual-list "^3.2.0"
rc-virtual-list "^3.4.13"
rc-slider@~10.0.0:
version "10.0.1"
resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.0.1.tgz#7058c68ff1e1aa4e7c3536e5e10128bdbccb87f9"
integrity sha512-igTKF3zBet7oS/3yNiIlmU8KnZ45npmrmHlUUio8PNbIhzMcsh+oE/r2UD42Y6YD2D/s+kzCQkzQrPD6RY435Q==
rc-slider@~10.1.0:
version "10.1.1"
resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.1.1.tgz#5e82036e60b61021aba3ea0e353744dd7c74e104"
integrity sha512-gn8oXazZISEhnmRinI89Z/JD/joAaM35jp+gDtIVSTD/JJMCCBqThqLk1SVJmvtfeiEF/kKaFY0+qt4SDHFUDw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.5"
rc-util "^5.18.1"
shallowequal "^1.1.0"
rc-util "^5.27.0"
rc-steps@~5.0.0-alpha.2:
version "5.0.0"
resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-5.0.0.tgz#2e2403f2dd69eb3966d65f461f7e3a8ee1ef69fe"
integrity sha512-9TgRvnVYirdhbV0C3syJFj9EhCRqoJAsxt4i1rED5o8/ZcSv5TLIYyo4H8MCjLPvbe2R+oBAm/IYBEtC+OS1Rw==
rc-steps@~6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-6.0.0.tgz#f7148f8097d5d135f19b96c1b4f4b50ad6093753"
integrity sha512-+KfMZIty40mYCQSDvYbZ1jwnuObLauTiIskT1hL4FFOBHP6ZOr8LK0m143yD3kEN5XKHSEX1DIwCj3AYZpoeNQ==
dependencies:
"@babel/runtime" "^7.16.7"
classnames "^2.2.3"
rc-util "^5.16.1"
rc-switch@~3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/rc-switch/-/rc-switch-3.2.2.tgz#d001f77f12664d52595b4f6fb425dd9e66fba8e8"
integrity sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==
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.10.1"
"@babel/runtime" "^7.21.0"
classnames "^2.2.1"
rc-util "^5.0.1"
rc-util "^5.30.0"
rc-table@~7.26.0:
version "7.26.0"
resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.26.0.tgz#9d517e7fa512e7571fdcc453eb1bf19edfac6fbc"
integrity sha512-0cD8e6S+DTGAt5nBZQIPFYEaIukn17sfa5uFL98faHlH/whZzD8ii3dbFL4wmUDEL4BLybhYop+QUfZJ4CPvNQ==
rc-table@~7.31.0:
version "7.31.1"
resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.31.1.tgz#85487b25d98559d6e684b3348e893da1d1f48232"
integrity sha512-KZPi35aGpv2VaL1Jbc58FBJo063HtKyVjhOFWX4AkBV7tjHHQokMdUoua5E+GPJh6QZUpK/a8PjKa9IZzPLIEA==
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.22.5"
shallowequal "^1.1.0"
rc-util "^5.27.1"
rc-tabs@~12.5.0:
version "12.5.7"
resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-12.5.7.tgz#9175f5e27341416d3f572c8d9a40e300d0e2de6b"
integrity sha512-i9gY2TcwCNmBM+bXCDDTvb6mnRYIDkkNm+UGoIqrLOFnRRbAqjsSf+tgyvzhBvbK8XcSrMhzKKLaOMbGyND8YA==
rc-tabs@~12.5.6:
version "12.5.10"
resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-12.5.10.tgz#0e41c723fac66c4f0bcad3271429fff6653b0721"
integrity sha512-Ay0l0jtd4eXepFH9vWBvinBjqOpqzcsJTerBGwJy435P2S90Uu38q8U/mvc1sxUEVOXX5ZCFbxcWPnfG3dH+tQ==
dependencies:
"@babel/runtime" "^7.11.2"
classnames "2.x"
@ -8130,34 +8208,34 @@ rc-tabs@~12.5.0:
rc-resize-observer "^1.0.0"
rc-util "^5.16.0"
rc-textarea@^0.4.0, rc-textarea@~0.4.5:
version "0.4.7"
resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-0.4.7.tgz#627f662d46f99e0059d1c1ebc8db40c65339fe90"
integrity sha512-IQPd1CDI3mnMlkFyzt2O4gQ2lxUsnBAeJEoZGJnkkXgORNqyM9qovdrCj9NzcRfpHgLdzaEbU3AmobNFGUznwQ==
rc-textarea@~1.2.0, rc-textarea@~1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.2.3.tgz#bdaea2931ad2571583e9e27e627b8a9b5dbe7de7"
integrity sha512-YvN8IskIVBRRzcS4deT0VAMim31+T3IoVX4yoCJ+b/iVCvw7yf0usR7x8OaHiUOUoURKcn/3lfGjmtzplcy99g==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
rc-input "~1.0.4"
rc-resize-observer "^1.0.0"
rc-util "^5.24.4"
shallowequal "^1.1.0"
rc-util "^5.27.0"
rc-tooltip@~5.2.0:
version "5.2.2"
resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-5.2.2.tgz#e5cafa8ecebf78108936a0bcb93c150fa81ac93b"
integrity sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==
rc-tooltip@~6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.0.1.tgz#6a5e33bd6c3f6afe8851ea90e7af43e5c26b3cc6"
integrity sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA==
dependencies:
"@babel/runtime" "^7.11.2"
"@rc-component/trigger" "^1.0.4"
classnames "^2.3.1"
rc-trigger "^5.0.0"
rc-tree-select@~5.5.0:
version "5.5.5"
resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.5.5.tgz#d28b3b45da1e820cd21762ba0ee93c19429bb369"
integrity sha512-k2av7jF6tW9bIO4mQhaVdV4kJ1c54oxV3/hHVU+oD251Gb5JN+m1RbJFTMf1o0rAFqkvto33rxMdpafaGKQRJw==
rc-tree-select@~5.8.0:
version "5.8.0"
resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.8.0.tgz#b3d861b7b2111d3a96b56040b851d5e280d71c95"
integrity sha512-NozrkVLR8k3cpx8R5/YFmJMptgOacR5zEQHZGMQg31bD6jEgGiJeOn2cGRI6x0Xdyvi1CSqCbUsIoqiej74wzw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-select "~14.1.0"
rc-select "~14.4.0"
rc-tree "~5.7.0"
rc-util "^5.16.1"
@ -8172,7 +8250,7 @@ rc-tree@~5.7.0:
rc-util "^5.16.1"
rc-virtual-list "^3.4.8"
rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.10, rc-trigger@^5.3.1:
rc-trigger@^5.1.2, rc-trigger@^5.3.1:
version "5.3.4"
resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.3.4.tgz#6b4b26e32825677c837d1eb4d7085035eecf9a61"
integrity sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw==
@ -8192,7 +8270,7 @@ rc-upload@~4.3.0:
classnames "^2.2.5"
rc-util "^5.2.0"
rc-util@^5.0.1, rc-util@^5.0.6, rc-util@^5.15.0, rc-util@^5.16.0, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.19.2, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.21.2, rc-util@^5.22.5, rc-util@^5.23.0, rc-util@^5.24.4, rc-util@^5.26.0, rc-util@^5.27.0, rc-util@^5.4.0, rc-util@^5.6.1, rc-util@^5.8.0, rc-util@^5.9.4:
rc-util@^5.0.1, rc-util@^5.0.6, rc-util@^5.15.0, rc-util@^5.16.0, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.19.2, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.21.2, rc-util@^5.22.5, rc-util@^5.24.4, rc-util@^5.26.0, rc-util@^5.27.0, rc-util@^5.6.1, rc-util@^5.8.0, rc-util@^5.9.4:
version "5.28.0"
resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.28.0.tgz#9e5e441d5875b8bf0ba56c2f295042a28dcff580"
integrity sha512-KYDjhGodswVj29v0TRciKTqRPgumIFvFDndbCD227pitQ+0Cei196rxk+OXb/blu6V8zdTRK5RjCJn+WmHLvBA==
@ -8200,7 +8278,15 @@ rc-util@^5.0.1, rc-util@^5.0.6, rc-util@^5.15.0, rc-util@^5.16.0, rc-util@^5.16.
"@babel/runtime" "^7.18.3"
react-is "^16.12.0"
rc-virtual-list@^3.2.0, rc-virtual-list@^3.4.8:
rc-util@^5.25.2, rc-util@^5.27.1, rc-util@^5.28.0, rc-util@^5.29.2, rc-util@^5.30.0:
version "5.30.0"
resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.30.0.tgz#76ae9019ff72a5b519ce51465cd77b2e451207e3"
integrity sha512-uaWpF/CZGyXuhQG71MWxkU+0bWkPEgqZUxEv251Cu7p3kpHDNm5+Ygu/U8ux0a/zbfGW8PsKcJL0XVBOMrlIZg==
dependencies:
"@babel/runtime" "^7.18.3"
react-is "^16.12.0"
rc-virtual-list@^3.4.13, rc-virtual-list@^3.4.8:
version "3.4.13"
resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.13.tgz#20acc934b263abcf7b7c161f50ef82281b2f7e8d"
integrity sha512-cPOVDmcNM7rH6ANotanMDilW/55XnFPw0Jh/GQYtrzZSy3AmWvCnqVNyNC/pgg3lfVmX2994dlzAhuUrd4jG7w==
@ -8629,12 +8715,12 @@ scheduler@^0.23.0:
dependencies:
loose-envify "^1.1.0"
scroll-into-view-if-needed@^2.2.25:
version "2.2.31"
resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587"
integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
scroll-into-view-if-needed@^3.0.3:
version "3.0.10"
resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13"
integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==
dependencies:
compute-scroll-into-view "^1.0.20"
compute-scroll-into-view "^3.0.2"
scslre@^0.1.6:
version "0.1.6"
@ -8713,13 +8799,6 @@ setimmediate@^1.0.5:
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
shallow-clone@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
dependencies:
kind-of "^6.0.2"
shallowequal@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
@ -9198,6 +9277,11 @@ styled-system@^5.0.0, styled-system@^5.1.5:
"@styled-system/variant" "^5.1.5"
object-assign "^4.1.1"
stylis@^4.0.13:
version "4.2.0"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51"
integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
superjson@^1.12.2:
version "1.12.2"
resolved "https://registry.yarnpkg.com/superjson/-/superjson-1.12.2.tgz#072471f1e6add2d95a38b77fef8c7a199d82103a"
@ -9296,6 +9380,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==
through@^2.3.6, through@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"