diff --git a/frontend/package.json b/frontend/package.json index 2b6a36af8b..0c79c47b1d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -36,7 +36,7 @@ "@uiw/react-md-editor": "3.23.5", "@xstate/react": "^3.0.0", "ansi-to-html": "0.7.2", - "antd": "5.0.5", + "antd": "5.11.0", "antd-table-saveas-excel": "2.2.1", "axios": "^0.21.0", "babel-eslint": "^10.1.0", diff --git a/frontend/public/locales/en/valueGraph.json b/frontend/public/locales/en/valueGraph.json new file mode 100644 index 0000000000..76aa50e309 --- /dev/null +++ b/frontend/public/locales/en/valueGraph.json @@ -0,0 +1,3 @@ +{ + "this_value_satisfies_multiple_thresholds": "This value satisfies multiple thresholds." +} \ No newline at end of file diff --git a/frontend/src/components/DraggableTableRow/tests/__snapshots__/DraggableTableRow.test.tsx.snap b/frontend/src/components/DraggableTableRow/tests/__snapshots__/DraggableTableRow.test.tsx.snap index 4c70482cb6..984d943840 100644 --- a/frontend/src/components/DraggableTableRow/tests/__snapshots__/DraggableTableRow.test.tsx.snap +++ b/frontend/src/components/DraggableTableRow/tests/__snapshots__/DraggableTableRow.test.tsx.snap @@ -3,10 +3,10 @@ exports[`DraggableTableRow Snapshot test should render DraggableTableRow 1`] = `
- @@ -43,7 +43,7 @@ exports[`DraggableTableRow Snapshot test should render DraggableTableRow 1`] = ` class="ant-table-cell" >
{t('name_of_the_view')} -
+ diff --git a/frontend/src/components/ValueGraph/ValueGraph.styles.scss b/frontend/src/components/ValueGraph/ValueGraph.styles.scss new file mode 100644 index 0000000000..b6f12e4905 --- /dev/null +++ b/frontend/src/components/ValueGraph/ValueGraph.styles.scss @@ -0,0 +1,31 @@ +.value-graph-container { + width: 50%; + height: 50%; + max-width: 200px; + max-height: 200px; + border-radius: 10px; + display: flex; + justify-content: center; + align-items: center; + position: relative; + + .value-graph-text { + font-size: 2.5vw; + text-align: center; + } + + .value-graph-bgconflict { + position: absolute; + right: 10px; + bottom: 10px; + } + + .value-graph-textconflict { + margin-left: 10px; + margin-top: 20px; + } + + .value-graph-icon { + color: #E89A3C; + } +} \ No newline at end of file diff --git a/frontend/src/components/ValueGraph/index.tsx b/frontend/src/components/ValueGraph/index.tsx index e75f338945..6f2eaa8de1 100644 --- a/frontend/src/components/ValueGraph/index.tsx +++ b/frontend/src/components/ValueGraph/index.tsx @@ -1,11 +1,66 @@ -import { Value } from './styles'; +import './ValueGraph.styles.scss'; -function ValueGraph({ value }: ValueGraphProps): JSX.Element { - return {value}; +import { ExclamationCircleFilled } from '@ant-design/icons'; +import { Tooltip, Typography } from 'antd'; +import { ThresholdProps } from 'container/NewWidget/RightContainer/Threshold/types'; +import { useTranslation } from 'react-i18next'; + +import { getBackgroundColorAndThresholdCheck } from './utils'; + +function ValueGraph({ + value, + rawValue, + thresholds, +}: ValueGraphProps): JSX.Element { + const { t } = useTranslation(['valueGraph']); + + const { + threshold, + isConflictingThresholds, + } = getBackgroundColorAndThresholdCheck(thresholds, rawValue); + + return ( +
+ + {value} + + {isConflictingThresholds && ( +
+ + + +
+ )} +
+ ); } interface ValueGraphProps { value: string; + rawValue: number; + thresholds: ThresholdProps[]; } export default ValueGraph; diff --git a/frontend/src/components/ValueGraph/styles.ts b/frontend/src/components/ValueGraph/styles.ts deleted file mode 100644 index 74a412fec3..0000000000 --- a/frontend/src/components/ValueGraph/styles.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Typography } from 'antd'; -import styled from 'styled-components'; - -export const Value = styled(Typography)` - font-size: 2.5vw; - text-align: center; -`; diff --git a/frontend/src/components/ValueGraph/utils.ts b/frontend/src/components/ValueGraph/utils.ts new file mode 100644 index 0000000000..189d22518d --- /dev/null +++ b/frontend/src/components/ValueGraph/utils.ts @@ -0,0 +1,97 @@ +import { getYAxisFormattedValue } from 'components/Graph/yAxisConfig'; +import { ThresholdProps } from 'container/NewWidget/RightContainer/Threshold/types'; + +function compareThreshold( + rawValue: number, + threshold: ThresholdProps, +): boolean { + if ( + threshold.thresholdOperator === undefined || + threshold.thresholdValue === undefined + ) { + return false; + } + switch (threshold.thresholdOperator) { + case '>': + return rawValue > threshold.thresholdValue; + case '>=': + return rawValue >= threshold.thresholdValue; + case '<': + return rawValue < threshold.thresholdValue; + case '<=': + return rawValue <= threshold.thresholdValue; + case '=': + return rawValue === threshold.thresholdValue; + default: + return false; + } +} + +function extractNumbersFromString(inputString: string): number[] { + const regex = /[+-]?\d+(\.\d+)?/g; + const matches = inputString.match(regex); + + if (matches) { + return matches.map(Number); + } + + return []; +} + +function getHighestPrecedenceThreshold( + matchingThresholds: ThresholdProps[], + thresholds: ThresholdProps[], +): ThresholdProps | null { + if (matchingThresholds.length === 0) { + return null; + } + + // whichever threshold from matchingThresholds is found first in thresholds array return the threshold from thresholds array + let highestPrecedenceThreshold = matchingThresholds[0]; + for (let i = 1; i < matchingThresholds.length; i += 1) { + if ( + thresholds.indexOf(matchingThresholds[i]) < + thresholds.indexOf(highestPrecedenceThreshold) + ) { + highestPrecedenceThreshold = matchingThresholds[i]; + } + } + + return highestPrecedenceThreshold; +} + +export function getBackgroundColorAndThresholdCheck( + thresholds: ThresholdProps[], + rawValue: number, +): { + threshold: ThresholdProps; + isConflictingThresholds: boolean; +} { + const matchingThresholds = thresholds.filter((threshold) => + compareThreshold( + extractNumbersFromString( + getYAxisFormattedValue(rawValue.toString(), threshold.thresholdUnit || ''), + )[0], + threshold, + ), + ); + + if (matchingThresholds.length === 0) { + return { + threshold: {} as ThresholdProps, + isConflictingThresholds: false, + }; + } + + const highestPrecedenceThreshold = getHighestPrecedenceThreshold( + matchingThresholds, + thresholds, + ); + + const isConflictingThresholds = matchingThresholds.length > 1; + + return { + threshold: highestPrecedenceThreshold || ({} as ThresholdProps), + isConflictingThresholds, + }; +} diff --git a/frontend/src/container/GridCardLayout/GridCard/FullView/index.tsx b/frontend/src/container/GridCardLayout/GridCard/FullView/index.tsx index aa04cab66a..e8153620d0 100644 --- a/frontend/src/container/GridCardLayout/GridCard/FullView/index.tsx +++ b/frontend/src/container/GridCardLayout/GridCard/FullView/index.tsx @@ -171,6 +171,7 @@ function FullView({ panelData={response.data?.payload.data.newResult.data.result || []} query={widget.query} ref={fullViewChartRef} + thresholds={widget.thresholds} /> )} diff --git a/frontend/src/container/GridCardLayout/GridCard/WidgetGraphComponent.tsx b/frontend/src/container/GridCardLayout/GridCard/WidgetGraphComponent.tsx index 9eafb0cf6d..b10b49d8cf 100644 --- a/frontend/src/container/GridCardLayout/GridCard/WidgetGraphComponent.tsx +++ b/frontend/src/container/GridCardLayout/GridCard/WidgetGraphComponent.tsx @@ -281,6 +281,7 @@ function WidgetGraphComponent({ onClickHandler={onClickHandler} panelData={queryResponse.data?.payload?.data.newResult.data.result || []} query={widget.query} + thresholds={widget.thresholds} />
)} diff --git a/frontend/src/container/GridCardLayout/WidgetHeader/index.tsx b/frontend/src/container/GridCardLayout/WidgetHeader/index.tsx index b3b03afbb7..9d48113910 100644 --- a/frontend/src/container/GridCardLayout/WidgetHeader/index.tsx +++ b/frontend/src/container/GridCardLayout/WidgetHeader/index.tsx @@ -169,9 +169,9 @@ function WidgetHeader({ const updatedMenuList = useMemo(() => generateMenuList(actions), [actions]); - const onClickHandler = useCallback(() => { - setIsOpen((open) => !open); - }, []); + const onClickHandler = (): void => { + setIsOpen(!isOpen); + }; const menu = useMemo( () => ({ diff --git a/frontend/src/container/GridPanelSwitch/index.tsx b/frontend/src/container/GridPanelSwitch/index.tsx index eab39a2baf..511bf449e9 100644 --- a/frontend/src/container/GridPanelSwitch/index.tsx +++ b/frontend/src/container/GridPanelSwitch/index.tsx @@ -11,7 +11,7 @@ const GridPanelSwitch = forwardRef< GridPanelSwitchProps >( ( - { panelType, data, yAxisUnit, panelData, query, options }, + { panelType, data, yAxisUnit, panelData, query, options, thresholds }, ref, ): JSX.Element | null => { const currentProps: PropsTypePropsMap = useMemo(() => { @@ -24,6 +24,7 @@ const GridPanelSwitch = forwardRef< [PANEL_TYPES.VALUE]: { data, yAxisUnit, + thresholds, }, [PANEL_TYPES.TABLE]: { ...GRID_TABLE_CONFIG, data: panelData, query }, [PANEL_TYPES.LIST]: null, @@ -32,7 +33,7 @@ const GridPanelSwitch = forwardRef< }; return result; - }, [data, options, ref, yAxisUnit, panelData, query]); + }, [data, options, ref, yAxisUnit, thresholds, panelData, query]); const Component = PANEL_TYPES_COMPONENT_MAP[panelType] as FC< PropsTypePropsMap[typeof panelType] diff --git a/frontend/src/container/GridPanelSwitch/types.ts b/frontend/src/container/GridPanelSwitch/types.ts index 0612fbae67..df09d4b59d 100644 --- a/frontend/src/container/GridPanelSwitch/types.ts +++ b/frontend/src/container/GridPanelSwitch/types.ts @@ -4,6 +4,7 @@ import { GridTableComponentProps } from 'container/GridTableComponent/types'; import { GridValueComponentProps } from 'container/GridValueComponent/types'; import { OnClickPluginOpts } from 'lib/uPlotLib/plugins/onClickPlugin'; import { ForwardedRef } from 'react'; +import { Widgets } from 'types/api/dashboard/getAll'; import { Query } from 'types/api/queryBuilder/queryBuilderData'; import { QueryDataV3 } from 'types/api/widgets/getQuery'; import uPlot from 'uplot'; @@ -21,6 +22,7 @@ export type GridPanelSwitchProps = { onDragSelect?: (start: number, end: number) => void; panelData: QueryDataV3[]; query: Query; + thresholds?: Widgets['thresholds']; }; export type PropsTypePropsMap = { diff --git a/frontend/src/container/GridValueComponent/index.tsx b/frontend/src/container/GridValueComponent/index.tsx index 14294893c6..21e1c5ee60 100644 --- a/frontend/src/container/GridValueComponent/index.tsx +++ b/frontend/src/container/GridValueComponent/index.tsx @@ -12,6 +12,7 @@ function GridValueComponent({ data, title, yAxisUnit, + thresholds, }: GridValueComponentProps): JSX.Element { const value = ((data[1] || [])[0] || 0) as number; @@ -35,6 +36,8 @@ function GridValueComponent({
); } interface WidgetGraphProps { + thresholds: ThresholdProps[]; yAxisUnit: string; selectedWidget: Widgets; getWidgetQueryRange: UseQueryResult< diff --git a/frontend/src/container/NewWidget/LeftContainer/WidgetGraph/index.tsx b/frontend/src/container/NewWidget/LeftContainer/WidgetGraph/index.tsx index 2bdb4576c7..fec25eaa56 100644 --- a/frontend/src/container/NewWidget/LeftContainer/WidgetGraph/index.tsx +++ b/frontend/src/container/NewWidget/LeftContainer/WidgetGraph/index.tsx @@ -15,6 +15,7 @@ function WidgetGraph({ selectedGraph, yAxisUnit, selectedTime, + thresholds, }: WidgetGraphProps): JSX.Element { const { currentQuery } = useQueryBuilder(); const { selectedDashboard } = useDashboard(); @@ -46,6 +47,7 @@ function WidgetGraph({ )} (''); + + const debounceColor = useDebounce(colorFromPicker); + + useEffect(() => { + if (debounceColor) { + setColor(debounceColor); + } + }, [debounceColor, setColor]); + + const handleColorChange = (_: Color, hex: string): void => { + setColorFromPicker(hex); + }; + + const items: MenuProps['items'] = [ + { + key: 'Red', + label: , + onClick: (): void => setColor('Red'), + }, + { + key: 'Orange', + label: , + onClick: (): void => setColor('Orange'), + }, + { + key: 'Green', + label: , + onClick: (): void => setColor('Green'), + }, + { + key: 'Blue', + label: , + onClick: (): void => setColor('Blue'), + }, + { + key: 'Custom Color', + label: ( + + Custom Color + + ), + }, + ]; + + return ( + + + + ); +} + +interface ColorSelectorProps { + thresholdColor?: string; + setColor: Dispatch>; +} + +ColorSelector.defaultProps = { + thresholdColor: undefined, +}; + +export default ColorSelector; diff --git a/frontend/src/container/NewWidget/RightContainer/Threshold/CustomColor.styles.scss b/frontend/src/container/NewWidget/RightContainer/Threshold/CustomColor.styles.scss new file mode 100644 index 0000000000..058052f2f6 --- /dev/null +++ b/frontend/src/container/NewWidget/RightContainer/Threshold/CustomColor.styles.scss @@ -0,0 +1,18 @@ +.custom-color-container { + display: flex; + gap: 10px; + align-items: center; + + .custom-color-typography-dark { + color: #fff !important; + } + + .custom-color-typography-light { + color: #000 !important; + } + + .custom-color-tag { + width: 20px; + height: 20px; + } +} \ No newline at end of file diff --git a/frontend/src/container/NewWidget/RightContainer/Threshold/CustomColor.tsx b/frontend/src/container/NewWidget/RightContainer/Threshold/CustomColor.tsx new file mode 100644 index 0000000000..d4cc67bda6 --- /dev/null +++ b/frontend/src/container/NewWidget/RightContainer/Threshold/CustomColor.tsx @@ -0,0 +1,26 @@ +import './CustomColor.styles.scss'; + +import { Typography } from 'antd'; +import { useIsDarkMode } from 'hooks/useDarkMode'; + +import { CustomColorProps } from './types'; + +function CustomColor({ color }: CustomColorProps): JSX.Element { + const isDarkMode = useIsDarkMode(); + return ( +
+
+ + {color} + +
+ ); +} + +export default CustomColor; diff --git a/frontend/src/container/NewWidget/RightContainer/Threshold/ShowCaseValue.styles.scss b/frontend/src/container/NewWidget/RightContainer/Threshold/ShowCaseValue.styles.scss new file mode 100644 index 0000000000..360387c333 --- /dev/null +++ b/frontend/src/container/NewWidget/RightContainer/Threshold/ShowCaseValue.styles.scss @@ -0,0 +1,13 @@ +.show-case-container { + padding: 5px 15px; + border-radius: 5px; +} + +.show-case-dark { + background-color: #141414; +} + +.show-case-light { + background-color: rgb(255, 255, 255); + border: 1px solid #141414; +} \ No newline at end of file diff --git a/frontend/src/container/NewWidget/RightContainer/Threshold/ShowCaseValue.tsx b/frontend/src/container/NewWidget/RightContainer/Threshold/ShowCaseValue.tsx new file mode 100644 index 0000000000..c71c5cbcfc --- /dev/null +++ b/frontend/src/container/NewWidget/RightContainer/Threshold/ShowCaseValue.tsx @@ -0,0 +1,23 @@ +import './ShowCaseValue.styles.scss'; + +import { useIsDarkMode } from 'hooks/useDarkMode'; + +import { ShowCaseValueProps } from './types'; + +function ShowCaseValue({ width, value }: ShowCaseValueProps): JSX.Element { + const isDarkMode = useIsDarkMode(); + return ( +
+ {value} +
+ ); +} + +export default ShowCaseValue; diff --git a/frontend/src/container/NewWidget/RightContainer/Threshold/Threshold.styles.scss b/frontend/src/container/NewWidget/RightContainer/Threshold/Threshold.styles.scss new file mode 100644 index 0000000000..dcf7acf88c --- /dev/null +++ b/frontend/src/container/NewWidget/RightContainer/Threshold/Threshold.styles.scss @@ -0,0 +1,58 @@ +.threshold-container { + + .threshold-card { + padding: 0px; + border-radius: 10px; + position: relative; + margin-top: 10px; + + .threshold-card-container { + display: flex; + flex-direction: column; + gap: 10px; + } + + .ant-typography { + font-size: 14px; + font-weight: 400; + line-height: 22px; + } + + .ant-typograph-dark { + color: #FFFFFF73; + } + + .ant-typograph-light { + color: #00000073; + } + + } + + .threshold-card-dark { + background-color: #1F1F1F; + } + + .threshold-card-light { + background-color: rgb(255, 255, 255); + } + + .threshold-action-button { + position: absolute; + right: 10px; + top: 10px; + } + + .threshold-action-icon { + font-size: 16px; + } + + .threshold-units-selector { + display: flex; + align-items: center; + } + + .threshold-color-picker { + display: flex; + flex-direction: column; + } +} \ No newline at end of file diff --git a/frontend/src/container/NewWidget/RightContainer/Threshold/Threshold.tsx b/frontend/src/container/NewWidget/RightContainer/Threshold/Threshold.tsx new file mode 100644 index 0000000000..13021418b3 --- /dev/null +++ b/frontend/src/container/NewWidget/RightContainer/Threshold/Threshold.tsx @@ -0,0 +1,262 @@ +import './Threshold.styles.scss'; + +import { CheckOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; +import { Card, Divider, InputNumber, Select, Space, Typography } from 'antd'; +import { useIsDarkMode } from 'hooks/useDarkMode'; +import { useRef, useState } from 'react'; +import { useDrag, useDrop, XYCoord } from 'react-dnd'; + +import { operatorOptions, showAsOptions, unitOptions } from '../constants'; +import ColorSelector from './ColorSelector'; +import CustomColor from './CustomColor'; +import ShowCaseValue from './ShowCaseValue'; +import { ThresholdProps } from './types'; + +function Threshold({ + index, + thresholdOperator = '>', + thresholdValue = 0, + isEditEnabled = false, + thresholdUnit = 'ms', + thresholdColor = 'Red', + thresholdFormat = 'Text', + thresholdDeleteHandler, + setThresholds, + keyIndex, + moveThreshold, +}: ThresholdProps): JSX.Element { + const [isEditMode, setIsEditMode] = useState(isEditEnabled); + const [operator, setOperator] = useState( + thresholdOperator as string | number, + ); + const [value, setValue] = useState(thresholdValue); + const [unit, setUnit] = useState(thresholdUnit); + const [color, setColor] = useState(thresholdColor); + const [format, setFormat] = useState( + thresholdFormat, + ); + + const isDarkMode = useIsDarkMode(); + + const saveHandler = (): void => { + setIsEditMode(false); + if (setThresholds === undefined) { + return; + } + setThresholds((prevThresholds) => + prevThresholds.map((threshold) => { + if (threshold.index === index) { + return { + ...threshold, + isEditEnabled: false, + thresholdColor: color, + thresholdFormat: format, + thresholdOperator: operator as ThresholdProps['thresholdOperator'], + thresholdUnit: unit, + thresholdValue: value, + }; + } + return threshold; + }), + ); + }; + + const editHandler = (): void => { + setIsEditMode(true); + }; + + const handleOperatorChange = (value: string | number): void => { + setOperator(value); + }; + + const handleValueChange = (value: number | null): void => { + if (value === null) { + return; + } + setValue(value); + }; + + const handleUnitChange = (value: string): void => { + setUnit(value); + }; + + const handlerFormatChange = ( + value: ThresholdProps['thresholdFormat'], + ): void => { + setFormat(value); + }; + + const deleteHandler = (): void => { + if (thresholdDeleteHandler) { + thresholdDeleteHandler(index); + } + }; + + const ref = useRef(null); + const [{ handlerId }, drop] = useDrop< + ThresholdProps, + void, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + { handlerId: any } + >({ + accept: 'Threshold', + collect(monitor) { + return { + handlerId: monitor.getHandlerId(), + }; + }, + hover(item: ThresholdProps, monitor) { + if (!ref.current) { + return; + } + const dragIndex = item.keyIndex; + const hoverIndex = keyIndex; + + if (dragIndex === hoverIndex) { + return; + } + + const hoverBoundingRect = ref.current?.getBoundingClientRect(); + + const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2; + + const clientOffset = monitor.getClientOffset(); + + const hoverClientY = (clientOffset as XYCoord).y - hoverBoundingRect.top; + + if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) { + return; + } + + if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) { + return; + } + + moveThreshold(dragIndex, hoverIndex); + // eslint-disable-next-line no-param-reassign + item.keyIndex = hoverIndex; + }, + }); + + const [{ isDragging }, drag] = useDrag({ + type: 'Threshold', + item: () => ({ keyIndex }), + collect: (monitor) => ({ + isDragging: monitor.isDragging(), + }), + }); + + const opacity = isDragging ? 0 : 1; + drag(drop(ref)); + + return ( +
+ +
+
+ {isEditMode ? ( + + ) : ( + + )} + + +
+
+ + If value is + {isEditMode ? ( + + ) : ( + + )} + +
+
+ + Show with + + {isEditMode ? ( + + ) : ( + } /> + )} + {isEditMode ? ( + diff --git a/frontend/src/container/OrganizationSettings/AuthDomains/AddDomain/index.tsx b/frontend/src/container/OrganizationSettings/AuthDomains/AddDomain/index.tsx index 0c23824aed..e06072043b 100644 --- a/frontend/src/container/OrganizationSettings/AuthDomains/AddDomain/index.tsx +++ b/frontend/src/container/OrganizationSettings/AuthDomains/AddDomain/index.tsx @@ -76,10 +76,9 @@ function AddDomain({ refetch }: Props): JSX.Element { destroyOnClose onCancel={(): void => setIsDomain(false)} > - +
@@ -154,10 +159,10 @@ exports[`PipelinePage container test should render PipelinePageLayout section 1`
- - Pipeline Name Filters Last Edited Edited By Actions @@ -234,7 +244,7 @@ exports[`PipelinePage container test should render PipelinePageLayout section 1` colspan="7" >
diff --git a/frontend/src/container/PipelinePage/tests/__snapshots__/TagInput.test.tsx.snap b/frontend/src/container/PipelinePage/tests/__snapshots__/TagInput.test.tsx.snap index 6a97ec9ad6..ad5076e5f1 100644 --- a/frontend/src/container/PipelinePage/tests/__snapshots__/TagInput.test.tsx.snap +++ b/frontend/src/container/PipelinePage/tests/__snapshots__/TagInput.test.tsx.snap @@ -14,14 +14,14 @@ exports[`Pipeline Page should render TagInput section 1`] = ` class="c0" > server app diff --git a/frontend/src/container/ServiceApplication/ServiceMetrics/ServiceMetrics.test.tsx b/frontend/src/container/ServiceApplication/ServiceMetrics/ServiceMetrics.test.tsx index 1047b16ca7..bb5901b8f7 100644 --- a/frontend/src/container/ServiceApplication/ServiceMetrics/ServiceMetrics.test.tsx +++ b/frontend/src/container/ServiceApplication/ServiceMetrics/ServiceMetrics.test.tsx @@ -40,8 +40,6 @@ describe('ServicesUsingMetrics', () => { ), ); render(); - const loading = screen.getByText(/Loading.../i); - expect(loading).toBeInTheDocument(); const sampleAppText = await screen.findByText(/SampleApp/i); expect(sampleAppText).toBeInTheDocument(); const testAppText = await screen.findByText(/TestApp/i); diff --git a/frontend/src/hooks/useDebounce.tsx b/frontend/src/hooks/useDebounce.tsx index 88214a43b1..496222804d 100644 --- a/frontend/src/hooks/useDebounce.tsx +++ b/frontend/src/hooks/useDebounce.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; -export default function useDebounce(value: T, delay: number): T { +export default function useDebounce(value: T, delay = 500): T { const [debouncedValue, setDebouncedValue] = useState(value); useEffect(() => { diff --git a/frontend/src/pages/MetricsApplication/ApDex/ApDexSettings.test.tsx b/frontend/src/pages/MetricsApplication/ApDex/ApDexSettings.test.tsx index daa95d1d56..82816bb534 100644 --- a/frontend/src/pages/MetricsApplication/ApDex/ApDexSettings.test.tsx +++ b/frontend/src/pages/MetricsApplication/ApDex/ApDexSettings.test.tsx @@ -28,7 +28,7 @@ describe('ApDexSettings', () => { }); it('should render the spinner when the data is loading', () => { - render( + const { container } = render( { />, ); - expect(screen.getByText('Loading...')).toBeInTheDocument(); + const loadingSpan = container.querySelector('[aria-label="loading"]'); + + // Assert that the loading span is found + expect(loadingSpan).toBeInTheDocument(); }); it('should close the popover when the cancel button is clicked', async () => { diff --git a/frontend/src/types/api/dashboard/getAll.ts b/frontend/src/types/api/dashboard/getAll.ts index fafdae6b3c..c85bbee0bd 100644 --- a/frontend/src/types/api/dashboard/getAll.ts +++ b/frontend/src/types/api/dashboard/getAll.ts @@ -1,4 +1,5 @@ import { PANEL_TYPES } from 'constants/queryBuilder'; +import { ThresholdProps } from 'container/NewWidget/RightContainer/Threshold/types'; import { timePreferenceType } from 'container/NewWidget/RightContainer/timeItems'; import { ReactNode } from 'react'; import { Layout } from 'react-grid-layout'; @@ -69,6 +70,7 @@ export interface IBaseWidget { timePreferance: timePreferenceType; stepSize?: number; yAxisUnit?: string; + thresholds?: ThresholdProps[]; } export interface Widgets extends IBaseWidget { query: Query; diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 6ef8667b8a..a3c9a0449f 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -53,17 +53,24 @@ dependencies: "@ctrl/tinycolor" "^3.4.0" -"@ant-design/cssinjs@^1.0.0": - version "1.9.1" - resolved "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.9.1.tgz" - integrity sha512-CZt1vCMs/sY7RoacYuIkZwQmb8Bhp99ReNNE9Y8lnUzik8fmCdKAQA7ecvVOFwmNFdcBHga7ye/XIRrsbkiqWw== +"@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.17.2": + version "1.17.2" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.17.2.tgz#08e939cbe60e9e0e0f3f03cd53a52e4a7623ed1f" + integrity sha512-vu7lnfEx4Mf8MPzZxn506Zen3Nt4fRr2uutwvdCuTCN5IiU0lDdQ0tiJ24/rmB8+pefwjluYsbyzbQSbgfJy+A== 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" + rc-util "^5.35.0" stylis "^4.0.13" "@ant-design/icons-svg@^4.2.1": @@ -71,7 +78,12 @@ resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz" integrity sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw== -"@ant-design/icons@4.8.0", "@ant-design/icons@^4.7.0": +"@ant-design/icons-svg@^4.3.0": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz#4b2f65a17d4d32b526baa6414aca2117382bf8da" + integrity sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g== + +"@ant-design/icons@4.8.0": version "4.8.0" resolved "https://registry.npmjs.org/@ant-design/icons/-/icons-4.8.0.tgz" integrity sha512-T89P2jG2vM7OJ0IfGx2+9FC5sQjtTzRSz+mCHTXkFn/ELZc2YpfStmYHmqzq2Jx55J0F7+O6i5/ZKFSVNWCKNg== @@ -82,16 +94,27 @@ classnames "^2.2.6" rc-util "^5.9.4" -"@ant-design/react-slick@~0.29.1": - version "0.29.2" - resolved "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-0.29.2.tgz" - integrity sha512-kgjtKmkGHa19FW21lHnAfyyH9AAoh35pBdcJ53rHmQ3O+cfFHGHnUbj/HFrRNJ5vIts09FKJVAD8RpaC+RaWfA== +"@ant-design/icons@^5.2.6": + version "5.2.6" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.2.6.tgz#2d4a9a37f531eb2a20cebec01d6fb69cf593900d" + integrity sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw== + dependencies: + "@ant-design/colors" "^7.0.0" + "@ant-design/icons-svg" "^4.3.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" - lodash "^4.17.21" resize-observer-polyfill "^1.5.1" + throttle-debounce "^5.0.0" "@babel/code-frame@7.12.11": version "7.12.11" @@ -2046,6 +2069,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.3.1": version "7.23.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" @@ -2306,6 +2336,11 @@ resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz" integrity sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ== +"@ctrl/tinycolor@^3.6.0", "@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== + "@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": version "0.5.7" resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" @@ -2901,6 +2936,24 @@ resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz" integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== +"@rc-component/color-picker@~1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-1.4.1.tgz#dcab0b660e9c4ed63a7582db68ed4a77c862cb93" + integrity sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw== + dependencies: + "@babel/runtime" "^7.10.1" + "@ctrl/tinycolor" "^3.6.0" + classnames "^2.2.6" + rc-util "^5.30.0" + +"@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.0.1" resolved "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.0.1.tgz" @@ -2908,7 +2961,16 @@ dependencies: "@babel/runtime" "^7.18.0" -"@rc-component/portal@^1.0.0-6", "@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2": +"@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": version "1.1.1" resolved "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.1.tgz" integrity sha512-m8w3dFXX0H6UkJ4wtfrSwhe2/6M08uz24HHrF8pWfAXPwA9hwCuTE5per/C86KwNLouRpwFGcr7LfpHaa1F38g== @@ -2917,17 +2979,38 @@ classnames "^2.3.2" rc-util "^5.24.4" -"@rc-component/tour@~1.0.1-2": - version "1.0.4" - resolved "https://registry.npmjs.org/@rc-component/tour/-/tour-1.0.4.tgz" - integrity sha512-FwAh9twryS6Ava2mUqwJtbhIt0ObIZIgQOJK+XTl+pQvsmXtUGtbOif3/4FeVmncy7FEGH7mnlIjS4OLGkQC9A== +"@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.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.10.0.tgz#b05bc327438f1c583439e2d2dcc10ec0530aea19" + integrity sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A== dependencies: "@babel/runtime" "^7.18.0" "@rc-component/portal" "^1.0.0-9" + "@rc-component/trigger" "^1.3.6" classnames "^2.3.2" - rc-trigger "^5.3.4" rc-util "^5.24.4" +"@rc-component/trigger@^1.17.0", "@rc-component/trigger@^1.18.0", "@rc-component/trigger@^1.3.6", "@rc-component/trigger@^1.5.0", "@rc-component/trigger@^1.7.0": + version "1.18.1" + resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-1.18.1.tgz#149881ace55943f0b74ae0470dc9f05b8f0b5d51" + integrity sha512-bAcxJJ1Y+EJVgn8BRik7d8JjjAPND5zKkHQ3159zeR0gVoG4Z0RgEDAiXFFoie3/WpoJ9dRJyjrIpnH4Ef7PEg== + 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" + "@react-dnd/asap@^5.0.1": version "5.0.2" resolved "https://registry.yarnpkg.com/@react-dnd/asap/-/asap-5.0.2.tgz#1f81f124c1cd6f39511c11a881cfb0f715343488" @@ -4295,57 +4378,59 @@ antd-table-saveas-excel@2.2.1: better-xlsx "^0.7.5" file-saver "^2.0.2" -antd@5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/antd/-/antd-5.0.5.tgz" - integrity sha512-8jWUjZ65urNHZPg9/Ywa9V0PlNfqjhewKgSPF4nraN9X5v434lDJkRBQGN7meNixQ6aM2B/JhXPm9UaJ/tAQmA== +antd@5.11.0: + version "5.11.0" + resolved "https://registry.yarnpkg.com/antd/-/antd-5.11.0.tgz#c0404412473f9ac14c5f75bc679fb805e59d4ec6" + integrity sha512-34T5Y6z+Ip+j4faXPTcanTFCLLpR4V0rLHtuz0lbN9gF4coGY/YYa8bhgwXrT6muW0Afwyo3NmbMF52hvIarog== dependencies: - "@ant-design/colors" "^6.0.0" - "@ant-design/cssinjs" "^1.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.17.2" + "@ant-design/icons" "^5.2.6" + "@ant-design/react-slick" "~1.0.2" "@babel/runtime" "^7.18.3" - "@ctrl/tinycolor" "^3.4.0" - "@rc-component/tour" "~1.0.1-2" - classnames "^2.2.6" - copy-to-clipboard "^3.2.0" + "@ctrl/tinycolor" "^3.6.1" + "@rc-component/color-picker" "~1.4.1" + "@rc-component/mutate-observer" "^1.1.0" + "@rc-component/tour" "~1.10.0" + "@rc-component/trigger" "^1.18.0" + classnames "^2.3.2" + copy-to-clipboard "^3.3.3" dayjs "^1.11.1" - lodash "^4.17.21" - rc-cascader "~3.7.0" - rc-checkbox "~2.3.0" - rc-collapse "~3.4.2" - rc-dialog "~9.0.2" - rc-drawer "~6.0.0" - rc-dropdown "~4.0.0" - rc-field-form "~1.27.0" - rc-image "~5.12.0" - rc-input "~0.1.4" - rc-input-number "~7.4.0" - rc-mentions "~1.13.1" - rc-menu "~9.8.0" - rc-motion "^2.6.1" - rc-notification "~5.0.0-alpha.9" - rc-pagination "~3.2.0" - rc-picker "~3.1.1" - rc-progress "~3.4.1" - rc-rate "~2.9.0" - rc-resize-observer "^1.2.0" - rc-segmented "~2.1.0" - rc-select "~14.1.13" - rc-slider "~10.0.0" - rc-steps "~6.0.0-alpha.2" - rc-switch "~4.0.0" - rc-table "~7.26.0" - rc-tabs "~12.4.2" - rc-textarea "~0.4.5" - rc-tooltip "~5.2.0" - rc-tree "~5.7.0" - rc-tree-select "~5.5.4" - rc-trigger "^5.2.10" - rc-upload "~4.3.0" - rc-util "^5.25.2" - scroll-into-view-if-needed "^3.0.3" - shallowequal "^1.1.0" + qrcode.react "^3.1.0" + rc-cascader "~3.20.0" + rc-checkbox "~3.1.0" + rc-collapse "~3.7.1" + rc-dialog "~9.3.4" + rc-drawer "~6.5.2" + rc-dropdown "~4.1.0" + rc-field-form "~1.40.0" + rc-image "~7.3.2" + rc-input "~1.3.5" + rc-input-number "~8.4.0" + rc-mentions "~2.9.1" + rc-menu "~9.12.2" + rc-motion "^2.9.0" + rc-notification "~5.3.0" + rc-pagination "~3.7.0" + rc-picker "~3.14.6" + rc-progress "~3.5.1" + rc-rate "~2.12.0" + rc-resize-observer "^1.4.0" + rc-segmented "~2.2.2" + rc-select "~14.10.0" + rc-slider "~10.4.0" + rc-steps "~6.0.1" + rc-switch "~4.1.0" + rc-table "~7.35.2" + rc-tabs "~12.13.1" + rc-textarea "~1.5.1" + rc-tooltip "~6.1.2" + rc-tree "~5.8.2" + rc-tree-select "~5.15.0" + rc-upload "~4.3.5" + rc-util "^5.38.0" + scroll-into-view-if-needed "^3.1.0" + throttle-debounce "^5.0.0" anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.3" @@ -5782,7 +5867,7 @@ copy-anything@^2.0.1: dependencies: is-what "^3.14.1" -copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: +copy-to-clipboard@^3.3.1, copy-to-clipboard@^3.3.3: version "3.3.3" resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== @@ -6517,11 +6602,6 @@ dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz" integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== -dom-align@^1.7.0: - version "1.12.4" - resolved "https://registry.npmjs.org/dom-align/-/dom-align-1.12.4.tgz" - integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== - dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" @@ -12229,6 +12309,11 @@ q@^1.5.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" 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" @@ -12316,52 +12401,41 @@ rbush@^3.0.1: dependencies: quickselect "^2.0.0" -rc-align@^4.0.0: - version "4.0.15" - resolved "https://registry.npmjs.org/rc-align/-/rc-align-4.0.15.tgz" - integrity sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - dom-align "^1.7.0" - rc-util "^5.26.0" - resize-observer-polyfill "^1.5.1" - -rc-cascader@~3.7.0: - version "3.7.2" - resolved "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.7.2.tgz" - integrity sha512-5nPEM76eMyikd0NFiy1gjwiB9m+bOzjY6Lnd5bVC6Ar3XLlOpOnlCcV3oBFWLN3f7B18tAGpaAVlT2uyEDCv9w== +rc-cascader@~3.20.0: + version "3.20.0" + resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.20.0.tgz#b270f9d84ed83417ee7309ef5e56e415f1586076" + integrity sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw== dependencies: "@babel/runtime" "^7.12.5" array-tree-filter "^2.1.0" classnames "^2.3.1" - rc-select "~14.1.0" - rc-tree "~5.7.0" - rc-util "^5.6.1" + rc-select "~14.10.0" + rc-tree "~5.8.1" + rc-util "^5.37.0" -rc-checkbox@~2.3.0: - version "2.3.2" - resolved "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.3.2.tgz" - integrity sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg== +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.2.1" + classnames "^2.3.2" + rc-util "^5.25.2" -rc-collapse@~3.4.2: - version "3.4.2" - resolved "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.4.2.tgz" - integrity sha512-jpTwLgJzkhAgp2Wpi3xmbTbbYExg6fkptL67Uu5LCRVEj6wqmy0DHTjjeynsjOLsppHGHu41t1ELntZ0lEvS/Q== +rc-collapse@~3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.7.1.tgz#bda1f7f80adccf3433c1c15d4d9f9ca09910c727" + integrity sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg== 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.npmjs.org/rc-dialog/-/rc-dialog-9.0.2.tgz" - integrity sha512-s3U+24xWUuB6Bn2Lk/Qt6rufy+uT+QvWkiFhNBcO9APLxcFFczWamaq7x9h8SCuhfc1nHcW4y8NbMsnAjNnWyg== +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" @@ -12369,92 +12443,94 @@ rc-dialog@~9.0.0, rc-dialog@~9.0.2: rc-motion "^2.3.0" rc-util "^5.21.0" -rc-drawer@~6.0.0: - version "6.0.3" - resolved "https://registry.npmjs.org/rc-drawer/-/rc-drawer-6.0.3.tgz" - integrity sha512-u4RajgrnREKQH/21gB2JHZiA6ZECo0X0BbmDxAJEhKD9jUhlAbqMN5I9VWa4PSzi9ceLHUShqQcPAh2EJswffw== +rc-drawer@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-6.5.2.tgz#49c1f279261992f6d4653d32a03b14acd436d610" + integrity sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ== dependencies: "@babel/runtime" "^7.10.1" - "@rc-component/portal" "^1.0.0-6" + "@rc-component/portal" "^1.1.1" classnames "^2.2.6" rc-motion "^2.6.1" - rc-util "^5.21.2" + rc-util "^5.36.0" -rc-dropdown@~4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.0.1.tgz" - integrity sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g== +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-trigger "^5.3.1" rc-util "^5.17.0" -rc-field-form@~1.27.0: - version "1.27.4" - resolved "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.27.4.tgz" - integrity sha512-PQColQnZimGKArnOh8V2907+VzDCXcqtFvHgevDLtqWc/P7YASb/FqntSmdS8q3VND5SHX3Y1vgMIzY22/f/0Q== +rc-field-form@~1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.40.0.tgz#808dce06ebae1c3aea574e672b673533fc98f11f" + integrity sha512-OM3N01X2BYFGJDJcwpk9/BBtlwgveE7eh2SQAKIxVCt9KVWlODYJ9ypTHQdxchfDbeJKJKxMBFXlLAmyvlgPHg== dependencies: "@babel/runtime" "^7.18.0" async-validator "^4.1.0" - rc-util "^5.8.0" + rc-util "^5.32.2" -rc-image@~5.12.0: - version "5.12.2" - resolved "https://registry.npmjs.org/rc-image/-/rc-image-5.12.2.tgz" - integrity sha512-12OCOspbN2AW2L1w+7vnYc+k0RexenqfQZIvq3WyYODp9GnTN4GLV8juekm3Apc/pwdfBSp0The1FZ5KXEozhg== +rc-image@~7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.3.2.tgz#fd92ab9994552d4f42638af0810039d34ad32dba" + integrity sha512-ICEF6SWv9YKhDXxy1vrXcmf0TVvEcQWIww5Yg+f+mn7e4oGX7FNP4+FExwMjNO5UHBEuWrigbGhlCgI6yZZ1jg== dependencies: "@babel/runtime" "^7.11.2" "@rc-component/portal" "^1.0.2" classnames "^2.2.6" - rc-dialog "~9.0.0" + rc-dialog "~9.3.4" rc-motion "^2.6.2" - rc-util "^5.0.6" + rc-util "^5.34.1" -rc-input-number@~7.4.0: - version "7.4.2" - resolved "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.4.2.tgz" - integrity sha512-yGturTw7WGP+M1GbJ+UTAO7L4buxeW6oilhL9Sq3DezsRS8/9qec4UiXUbeoiX9bzvRXH11JvgskBtxSp4YSNg== +rc-input-number@~8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-8.4.0.tgz#f0d0caa2ce3a4e37f062556f9cb4c08c8c23322d" + integrity sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/mini-decimal" "^1.0.1" classnames "^2.2.5" + rc-input "~1.3.5" rc-util "^5.28.0" -rc-input@~0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/rc-input/-/rc-input-0.1.4.tgz" - integrity sha512-FqDdNz+fV2dKNgfXzcSLKvC+jEs1709t7nD+WdfjrdSaOcefpgc7BUJYadc3usaING+b7ediMTfKxuJBsEFbXA== +rc-input@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.3.5.tgz#c69d3feb5172cc02ee5aaad86ae1ea8a73f864cb" + integrity sha512-SPPwbTJa5ACHNoDdGZF/70AOqqm1Rir3WleuFBKq+nFby1zvpnzvWsHJgzWOr6uJ0GNt8dTMzBrmVGQJkTXqqQ== 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.npmjs.org/rc-mentions/-/rc-mentions-1.13.1.tgz" - integrity sha512-FCkaWw6JQygtOz0+Vxz/M/NWqrWHB9LwqlY2RtcuFqWJNFK9njijOOzTSsBGANliGufVUzx/xuPHmZPBV0+Hgw== +rc-mentions@~2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.9.1.tgz#cfe55913fd5bc156ef9814f38c1a2ceefee032ce" + integrity sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew== dependencies: - "@babel/runtime" "^7.10.1" + "@babel/runtime" "^7.22.5" + "@rc-component/trigger" "^1.5.0" classnames "^2.2.6" - rc-menu "~9.8.0" - rc-textarea "^0.4.0" - rc-trigger "^5.0.4" - rc-util "^5.22.5" + rc-input "~1.3.5" + rc-menu "~9.12.0" + rc-textarea "~1.5.0" + rc-util "^5.34.1" -rc-menu@~9.8.0: - version "9.8.4" - resolved "https://registry.npmjs.org/rc-menu/-/rc-menu-9.8.4.tgz" - integrity sha512-lmw2j8I2fhdIzHmC9ajfImfckt0WDb2KVJJBBRIsxPEw2kGkEfjLMUoB1NgiNT/Q5cC8PdjGOGQjHJIJMwyNMw== +rc-menu@~9.12.0, rc-menu@~9.12.2: + version "9.12.2" + resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.12.2.tgz#1bab34646421224eff5c5b7de993f8ea1238418e" + integrity sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg== dependencies: "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^1.17.0" classnames "2.x" rc-motion "^2.4.3" - rc-overflow "^1.2.8" - rc-trigger "^5.1.2" + 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.0, rc-motion@^2.6.1, rc-motion@^2.6.2: +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.7.3" resolved "https://registry.npmjs.org/rc-motion/-/rc-motion-2.7.3.tgz" integrity sha512-2xUvo8yGHdOHeQbdI8BtBsCIrWKchEmFEIskf0nmHtJsou+meLd/JE+vnvSX2JxcBrJtXY2LuBpxAOxrbY/wMQ== @@ -12463,63 +12539,73 @@ rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motio classnames "^2.2.1" rc-util "^5.21.0" -rc-notification@~5.0.0-alpha.9: - version "5.0.3" - resolved "https://registry.npmjs.org/rc-notification/-/rc-notification-5.0.3.tgz" - integrity sha512-+wHbHu6RiTNtsZYx42WxWA+tC5m0qyKvJAauO4/6LIEyJspK8fRlFQz+OCFgFwGuNs3cOdo9tLs+cPfztSZwbQ== +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.6.0" + rc-motion "^2.9.0" rc-util "^5.20.1" -rc-overflow@^1.0.0, rc-overflow@^1.2.8: - version "1.3.0" - resolved "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.0.tgz" - integrity sha512-p2Qt4SWPTHAYl4oAao1THy669Fm5q8pYBDBHRaFOekCvcdcrgIx0ByXQMEkyPm8wUDX4BK6aARWecvCRc/7CTA== +rc-overflow@^1.3.1: + 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.19.2" + rc-util "^5.37.0" -rc-pagination@~3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.2.0.tgz" - integrity sha512-5tIXjB670WwwcAJzAqp2J+cOBS9W3cH/WU1EiYwXljuZ4vtZXKlY2Idq8FZrnYBz8KhN3vwPo9CoV/SJS6SL1w== +rc-pagination@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.7.0.tgz#4c4332800688ec0fd3b2435c4772f7f8d4d7b50e" + integrity sha512-IxSzKapd13L91/195o1TPkKnCNw8gIR25UP1GCW/7c7n/slhld4npu2j2PB9IWjXm4SssaAaSAt2lscYog7wzg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.1" + rc-util "^5.32.2" -rc-picker@~3.1.1: - version "3.1.5" - resolved "https://registry.npmjs.org/rc-picker/-/rc-picker-3.1.5.tgz" - integrity sha512-Hh3ml+u+5mxLfl4ahVWlRGiX5+0EJrALR6tSW9yP0eea+6j+YjvjfetbvuVidViMDMweZa38dr8HTfAFLG6GFw== +rc-picker@~3.14.6: + version "3.14.6" + resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-3.14.6.tgz#60fc34f9883272e10f6c593fa6d82e7e7a70781b" + integrity sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag== dependencies: "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^1.5.0" classnames "^2.2.1" - rc-trigger "^5.0.4" - rc-util "^5.27.0" + rc-util "^5.30.0" -rc-progress@~3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-3.4.1.tgz" - integrity sha512-eAFDHXlk8aWpoXl0llrenPMt9qKHQXphxcVsnKs0FHC6eCSk1ebJtyaVjJUzKe0233ogiLDeEFK1Uihz3s67hw== +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.9.0: - version "2.9.2" - resolved "https://registry.npmjs.org/rc-rate/-/rc-rate-2.9.2.tgz" - integrity sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g== +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.2.0: +rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0: version "1.3.1" resolved "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz" integrity sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg== @@ -12529,144 +12615,143 @@ 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: - version "2.1.2" - resolved "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.1.2.tgz" - integrity sha512-qGo1bCr83ESXpXVOCXjFe1QJlCAQXyi9KCiy8eX3rIMYlTeJr/ftySIaTnYsitL18SvWf5ZEHsfqIWoX0EMfFQ== +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.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.2.2.tgz#a34f12ce6c0975fc3042ae7656bcd18e1744798e" + integrity sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-motion "^2.4.4" rc-util "^5.17.0" -rc-select@~14.1.0, rc-select@~14.1.13: - version "14.1.17" - resolved "https://registry.npmjs.org/rc-select/-/rc-select-14.1.17.tgz" - integrity sha512-6qQhMqtoUkkboRqXKKFRR5Nu1mrnw2mC1uxIBIczg7aiJ94qCZBg4Ww8OLT9f4xdyCgbFSGh6r3yB9EBsjoHGA== +rc-select@~14.10.0: + version "14.10.0" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.10.0.tgz#5f60e61ed7c9a83c8591616b1174a1c4ab2de0cd" + integrity sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag== 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-overflow "^1.3.1" rc-util "^5.16.1" - rc-virtual-list "^3.2.0" + rc-virtual-list "^3.5.2" -rc-slider@~10.0.0: - version "10.0.1" - resolved "https://registry.npmjs.org/rc-slider/-/rc-slider-10.0.1.tgz" - integrity sha512-igTKF3zBet7oS/3yNiIlmU8KnZ45npmrmHlUUio8PNbIhzMcsh+oE/r2UD42Y6YD2D/s+kzCQkzQrPD6RY435Q== +rc-slider@~10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.4.0.tgz#efc016583fdea5f5dfb4f3dc61b6755a19e5f453" + integrity sha512-ZlpWjFhOlEf0w4Ng31avFBkXNNBj60NAcTPaIoiCxBkJ29wOtHSPMqv9PZeEoqmx64bpJkgK7kPa47HG4LPzww== 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@~6.0.0-alpha.2: - version "6.0.0" - resolved "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.0.tgz" - integrity sha512-+KfMZIty40mYCQSDvYbZ1jwnuObLauTiIskT1hL4FFOBHP6ZOr8LK0m143yD3kEN5XKHSEX1DIwCj3AYZpoeNQ== +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.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/rc-switch/-/rc-switch-4.0.0.tgz" - integrity sha512-IfrYC99vN0gKaTyjQdqYuADU0eH00SAFHg3jOp8HrmUpJruhV1SohJzrCbPqPraZeX/6X/QKkdLfkdnUub05WA== +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.npmjs.org/rc-table/-/rc-table-7.26.0.tgz" - integrity sha512-0cD8e6S+DTGAt5nBZQIPFYEaIukn17sfa5uFL98faHlH/whZzD8ii3dbFL4wmUDEL4BLybhYop+QUfZJ4CPvNQ== +rc-table@~7.35.2: + version "7.35.2" + resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.35.2.tgz#8fcd59e9342bf13fe131ca54c6105e71ab95588b" + integrity sha512-ZLIZdAEdfen21FI21xt2LDg9chQ7gc5Lpy4nkjWKPDgmQMnH0KJ8JQQzrd3zrEN16xzjiVdHHvRmi1RU8BtgYg== 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.22.5" - shallowequal "^1.1.0" + rc-util "^5.37.0" + rc-virtual-list "^3.11.1" -rc-tabs@~12.4.2: - version "12.4.2" - resolved "https://registry.npmjs.org/rc-tabs/-/rc-tabs-12.4.2.tgz" - integrity sha512-FFlGwuTjQUznWzJtyhmHc6KAp5lRQFxKUv9Aj1UtsOYe2e7WGmuzcrd+/LQchuPe0VjhaZPdGkmFGcqGqNO6ow== +rc-tabs@~12.13.1: + version "12.13.1" + resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-12.13.1.tgz#e28c5652dfed4e72eb27a75a2691754afd3e5f68" + integrity sha512-83u3l2QkO0UznCzdBLEk9WnNcT+imtmDmMT993sUUEOGnNQAmqOdev0XjeqrcvsAMe9CDpAWDFd7L/RZw+LVJQ== dependencies: "@babel/runtime" "^7.11.2" classnames "2.x" - rc-dropdown "~4.0.0" - rc-menu "~9.8.0" + rc-dropdown "~4.1.0" + rc-menu "~9.12.0" rc-motion "^2.6.2" rc-resize-observer "^1.0.0" - rc-util "^5.16.0" + rc-util "^5.34.1" -rc-textarea@^0.4.0, rc-textarea@~0.4.5: - version "0.4.7" - resolved "https://registry.npmjs.org/rc-textarea/-/rc-textarea-0.4.7.tgz" - integrity sha512-IQPd1CDI3mnMlkFyzt2O4gQ2lxUsnBAeJEoZGJnkkXgORNqyM9qovdrCj9NzcRfpHgLdzaEbU3AmobNFGUznwQ== +rc-textarea@~1.5.0, rc-textarea@~1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.5.2.tgz#8702464555ffcc16219289d4c1c4f721a79f54a9" + integrity sha512-VVwKYtkp5whZVhP+llX8zM8TtI3dv+BDA0FUbmBMGLaW/tuBJ7Yh35yPabO63V+Bi68xv17eI4hy+/4p2G0gFg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.1" + rc-input "~1.3.5" 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.npmjs.org/rc-tooltip/-/rc-tooltip-5.2.2.tgz" - integrity sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg== +rc-tooltip@~6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.1.2.tgz#33923ecfb2cf24347975093cbd0b048ab33c9567" + integrity sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw== dependencies: "@babel/runtime" "^7.11.2" + "@rc-component/trigger" "^1.18.0" classnames "^2.3.1" - rc-trigger "^5.0.0" -rc-tree-select@~5.5.4: - version "5.5.5" - resolved "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.5.5.tgz" - integrity sha512-k2av7jF6tW9bIO4mQhaVdV4kJ1c54oxV3/hHVU+oD251Gb5JN+m1RbJFTMf1o0rAFqkvto33rxMdpafaGKQRJw== +rc-tree-select@~5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.15.0.tgz#8591f1dd28b043dde6fa1ca30c7acb198b160a42" + integrity sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" - rc-select "~14.1.0" - rc-tree "~5.7.0" + rc-select "~14.10.0" + rc-tree "~5.8.1" rc-util "^5.16.1" -rc-tree@~5.7.0: - version "5.7.3" - resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-5.7.3.tgz" - integrity sha512-Oql2S9+ZmT+mfTp5SNo1XM0QvkENjc0mPRFsHWRFSPuKird0OYMZZKmLznUJ+0aGDeFFWN42wiUZJtMFhrLgLw== +rc-tree@~5.8.1, rc-tree@~5.8.2: + version "5.8.2" + resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.8.2.tgz#ed3a3f7c56597bbeab3303407a9e1739bbf15621" + integrity sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" rc-motion "^2.0.1" rc-util "^5.16.1" - rc-virtual-list "^3.4.8" + rc-virtual-list "^3.5.1" -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.3.4: - version "5.3.4" - resolved "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.4.tgz" - integrity sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw== - dependencies: - "@babel/runtime" "^7.18.3" - classnames "^2.2.6" - rc-align "^4.0.0" - rc-motion "^2.0.0" - rc-util "^5.19.2" - -rc-upload@~4.3.0: - version "4.3.4" - resolved "https://registry.npmjs.org/rc-upload/-/rc-upload-4.3.4.tgz" - integrity sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ== +rc-upload@~4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.5.tgz#12fc69b2af74d08646a104828831bcaf44076eda" + integrity sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA== dependencies: "@babel/runtime" "^7.18.3" 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.24.4, rc-util@^5.25.2, rc-util@^5.26.0, rc-util@^5.27.0, rc-util@^5.28.0, rc-util@^5.6.1, rc-util@^5.8.0, rc-util@^5.9.4: +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.9.4: version "5.30.0" resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.30.0.tgz" integrity sha512-uaWpF/CZGyXuhQG71MWxkU+0bWkPEgqZUxEv251Cu7p3kpHDNm5+Ygu/U8ux0a/zbfGW8PsKcJL0XVBOMrlIZg== @@ -12674,15 +12759,23 @@ 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: - version "3.4.13" - resolved "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.4.13.tgz" - integrity sha512-cPOVDmcNM7rH6ANotanMDilW/55XnFPw0Jh/GQYtrzZSy3AmWvCnqVNyNC/pgg3lfVmX2994dlzAhuUrd4jG7w== +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: + 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.3" + resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz#77d4e12e20c1ba314b43c0e37e118296674c5401" + integrity sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q== dependencies: "@babel/runtime" "^7.20.0" classnames "^2.2.6" rc-resize-observer "^1.0.0" - rc-util "^5.15.0" + rc-util "^5.36.0" react-addons-update@15.6.3: version "15.6.3" @@ -12818,7 +12911,7 @@ react-is@^17.0.1, react-is@^17.0.2: 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== @@ -13624,10 +13717,10 @@ screenfull@^5.1.0: resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz" integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== -scroll-into-view-if-needed@^3.0.3: - version "3.0.10" - resolved "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz" - integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== +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" @@ -14484,6 +14577,11 @@ throttle-debounce@^3.0.1: resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz" integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== +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@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz"