From 09d24a81510120813583e242372ee8b938d3b360 Mon Sep 17 00:00:00 2001 From: Snyk bot Date: Fri, 19 Mar 2021 09:03:11 +0200 Subject: [PATCH 1/7] fix: cvat/requirements/base.txt to reduce vulnerabilities (#2977) The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-PYGMENTS-1086606 --- cvat/requirements/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cvat/requirements/base.txt b/cvat/requirements/base.txt index ed31e5031e51..46e099bb1828 100644 --- a/cvat/requirements/base.txt +++ b/cvat/requirements/base.txt @@ -28,7 +28,7 @@ coreapi==2.3.3 django-filter==2.3.0 Markdown==3.2.2 djangorestframework==3.11.1 -Pygments==2.6.1 +Pygments==2.7.4 drf-yasg==1.17.1 Shapely==1.7.1 pdf2image==1.14.0 From eb1cb830bb7f52785c7e51f9799ede038099c20c Mon Sep 17 00:00:00 2001 From: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com> Date: Fri, 19 Mar 2021 10:24:18 +0300 Subject: [PATCH 2/7] Cypress test. Autoborder handler. (#2965) * Cypress test. Autoborder feature. * Add polyline between two shapes * Draw polyline with more than 3 point * Draw polygon with the 3rd points. * Draw second polygon with double click to stop propagation * Refactoring. * Apply comments --- .../case_60_autoborder_feature.js | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 tests/cypress/integration/actions_tasks_objects/case_60_autoborder_feature.js diff --git a/tests/cypress/integration/actions_tasks_objects/case_60_autoborder_feature.js b/tests/cypress/integration/actions_tasks_objects/case_60_autoborder_feature.js new file mode 100644 index 000000000000..3eecc85c8a78 --- /dev/null +++ b/tests/cypress/integration/actions_tasks_objects/case_60_autoborder_feature.js @@ -0,0 +1,116 @@ +// Copyright (C) 2021 Intel Corporation +// +// SPDX-License-Identifier: MIT + +/// + +import { taskName, labelName } from '../../support/const'; + +context('Autoborder feature.', () => { + const caseId = '60'; + const createRectangleShape2Points = { + points: 'By 2 Points', + type: 'Shape', + labelName: labelName, + firstX: 400, + firstY: 350, + secondX: 500, + secondY: 450, + }; + + const createRectangleShape2PointsSec = { + points: 'By 2 Points', + type: 'Shape', + labelName: labelName, + firstX: 600, + firstY: 350, + secondX: 700, + secondY: 450, + }; + + const keyCodeN = 78; + let rectangleSvgJsCircleId = []; + let rectangleSvgJsCircleIdSecond = []; + let polygonSvgJsCircleId = []; + let polylineSvgJsCircleId = []; + + function testCollectCxCircleCoord(arrToPush) { + cy.get('circle').then((circle) => { + for (let i = 0; i < circle.length; i++) { + if (circle[i].id.match(/^SvgjsCircle\d+$/)) { + cy.get(`#${circle[i].id}`) + .invoke('attr', 'cx') + .then(($circleCx) => { + arrToPush.push($circleCx); + }); + } + } + }); + } + + function testAutoborderPointsCount(expextedCount) { + cy.get('.cvat_canvas_autoborder_point') + .should('exist') + .and('be.visible') + .then(($autoborderPoints) => { + expect($autoborderPoints.length).to.be.equal(expextedCount); + }); + } + + function testActivatingShape(x, y, expectedShape) { + cy.get('.cvat-canvas-container').trigger('mousemove', x, y); + cy.get(expectedShape).should('have.class', 'cvat_canvas_shape_activated'); + } + + before(() => { + cy.openTaskJob(taskName); + cy.createRectangle(createRectangleShape2Points); + cy.createRectangle(createRectangleShape2PointsSec); + }); + + describe(`Testing case "${caseId}"`, () => { + it('Drawning a polygon with autoborder.', () => { + // Collect the rectagle points coordinates + testActivatingShape(450, 400, '#cvat_canvas_shape_1'); + testCollectCxCircleCoord(rectangleSvgJsCircleId); + testActivatingShape(650, 400, '#cvat_canvas_shape_2'); + testCollectCxCircleCoord(rectangleSvgJsCircleIdSecond); + + cy.get('.cvat-draw-polygon-control').click(); + cy.get('.cvat-draw-polygon-popover-visible').find('[type="button"]').contains('Shape').click(); + cy.get('body').type('{Ctrl}'); // Autoborder activation + testAutoborderPointsCount(8); // 8 points at the rectangles + cy.get('.cvat-canvas-container').click(400, 350).click(450, 250).click(500, 350).click(500, 450); + cy.get('.cvat-canvas-container').trigger('keydown', { keyCode: keyCodeN }).trigger('keyup'); + cy.get('.cvat_canvas_autoborder_point').should('not.exist'); + + // Collect the polygon points coordinates + testActivatingShape(450, 300, '#cvat_canvas_shape_3'); + testCollectCxCircleCoord(polygonSvgJsCircleId); + }); + + it('Start drawing a polyline with autobordering beetwen the two shapes.', () => { + cy.get('.cvat-draw-polyline-control').click(); + cy.get('.cvat-draw-polyline-popover-visible').find('[type="button"]').contains('Shape').click(); + testAutoborderPointsCount(12); // 8 points at the rectangles + 4 at the polygon + cy.get('.cvat-canvas-container') // Drawning + .click(600, 350) + .click(400, 450) + .click(550, 500) + .click(600, 450) + .click(600, 350); + cy.get('.cvat-canvas-container').trigger('keydown', { keyCode: keyCodeN }).trigger('keyup'); + cy.get('.cvat_canvas_autoborder_point').should('not.exist'); + + // Collect the polygon points coordinates + testActivatingShape(550, 350, '#cvat_canvas_shape_4'); + testCollectCxCircleCoord(polylineSvgJsCircleId); + }); + + it('Checking whether the coordinates of the contact points of the shapes match.', () => { + expect(polygonSvgJsCircleId[0]).to.be.equal(rectangleSvgJsCircleId[0]); // The 1st point of the rect and the 1st polygon point + expect(polygonSvgJsCircleId[2]).to.be.equal(rectangleSvgJsCircleId[1]); // The 2nd point of the rect and the 3rd polygon point + expect(polylineSvgJsCircleId[1]).to.be.equal(rectangleSvgJsCircleId[3]); // The 2nd point of the polyline and the 4th point rect + }); + }); +}); From c3fb14bf648dcaa6d58f23dbc99c10f4bc89bc6a Mon Sep 17 00:00:00 2001 From: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com> Date: Fri, 19 Mar 2021 13:28:44 +0300 Subject: [PATCH 3/7] Cypress/unit tests. Label deleting feature. (#2953) * Add dummy second label * Add unit tests * Update cypress command * Add cypress tests * Revert command.js requare * Add css classes * Add css class --- cvat-core/tests/api/projects.js | 19 +++- cvat-core/tests/api/tasks.js | 19 +++- cvat-core/tests/mocks/dummy-data.mock.js | 6 ++ .../annotation-page/annotation-page.tsx | 1 + .../labels-editor/labels-editor.tsx | 1 + cvat-ui/src/reducers/notifications-reducer.ts | 1 + .../case_57_project_label_deleting_feature.js | 89 +++++++++++++++++++ .../case_58_task_label_deleting_feature.js | 60 +++++++++++++ tests/cypress/support/commands.js | 10 ++- 9 files changed, 200 insertions(+), 6 deletions(-) create mode 100644 tests/cypress/integration/actions_projects/case_57_project_label_deleting_feature.js create mode 100644 tests/cypress/integration/actions_tasks_objects/case_58_task_label_deleting_feature.js diff --git a/cvat-core/tests/api/projects.js b/cvat-core/tests/api/projects.js index 5c1374301884..5a01b7d141d4 100644 --- a/cvat-core/tests/api/projects.js +++ b/cvat-core/tests/api/projects.js @@ -1,4 +1,4 @@ -// Copyright (C) 2019-2020 Intel Corporation +// Copyright (C) 2019-2021 Intel Corporation // // SPDX-License-Identifier: MIT @@ -168,3 +168,20 @@ describe('Feature: delete a project', () => { expect(result).toHaveLength(0); }); }); + +describe('Feature: delete a label', () => { + test('delete a label', async () => { + let result = await window.cvat.projects.get({ + id: 2, + }); + + const labelsLength = result[0].labels.length; + const deletedLabels = result[0].labels.filter((el) => el.name !== 'bicycle'); + result[0].labels = deletedLabels; + result[0].save(); + result = await window.cvat.projects.get({ + id: 2, + }); + expect(result[0].labels).toHaveLength(labelsLength - 1); + }); +}); diff --git a/cvat-core/tests/api/tasks.js b/cvat-core/tests/api/tasks.js index c309b4150753..eb7374d65a16 100644 --- a/cvat-core/tests/api/tasks.js +++ b/cvat-core/tests/api/tasks.js @@ -1,4 +1,4 @@ -// Copyright (C) 2020 Intel Corporation +// Copyright (C) 2020-2021 Intel Corporation // // SPDX-License-Identifier: MIT @@ -196,3 +196,20 @@ describe('Feature: delete a task', () => { expect(result).toHaveLength(0); }); }); + +describe('Feature: delete a label', () => { + test('delete a label', async () => { + let result = await window.cvat.tasks.get({ + id: 100, + }); + + const labelsLength = result[0].labels.length; + const deletedLabels = result[0].labels.filter((el) => el.name !== 'person'); + result[0].labels = deletedLabels; + result[0].save(); + result = await window.cvat.tasks.get({ + id: 100, + }); + expect(result[0].labels).toHaveLength(labelsLength - 1); + }); +}); diff --git a/cvat-core/tests/mocks/dummy-data.mock.js b/cvat-core/tests/mocks/dummy-data.mock.js index 33a3c500ce88..2984aeae5c12 100644 --- a/cvat-core/tests/mocks/dummy-data.mock.js +++ b/cvat-core/tests/mocks/dummy-data.mock.js @@ -189,6 +189,12 @@ const projectsDummyData = { }, ], }, + { + id: 2, + name: 'bicycle', + color: '#bb20c0', + attributes: [], + }, ], tasks: [ { diff --git a/cvat-ui/src/components/annotation-page/annotation-page.tsx b/cvat-ui/src/components/annotation-page/annotation-page.tsx index 92410833bf7e..a51d6c22995b 100644 --- a/cvat-ui/src/components/annotation-page/annotation-page.tsx +++ b/cvat-ui/src/components/annotation-page/annotation-page.tsx @@ -80,6 +80,7 @@ export default function AnnotationPageComponent(props: Props): JSX.Element { ), placement: 'topRight', + className: 'cvat-notification-no-labels', }); } }, [job, fetching, prevJob, prevFetching]); diff --git a/cvat-ui/src/components/labels-editor/labels-editor.tsx b/cvat-ui/src/components/labels-editor/labels-editor.tsx index 2eacf74a9b31..8937be10d9b7 100644 --- a/cvat-ui/src/components/labels-editor/labels-editor.tsx +++ b/cvat-ui/src/components/labels-editor/labels-editor.tsx @@ -158,6 +158,7 @@ export default class LabelsEditor extends React.PureComponent= 0) { ModalConfirm({ + className: 'cvat-modal-delete-label', title: `Do you want to delete "${label.name}" label?`, icon: , content: 'This action is irreversible. Annotation corresponding with this label will be deleted.', diff --git a/cvat-ui/src/reducers/notifications-reducer.ts b/cvat-ui/src/reducers/notifications-reducer.ts index 5451eba90020..4df4f4461852 100644 --- a/cvat-ui/src/reducers/notifications-reducer.ts +++ b/cvat-ui/src/reducers/notifications-reducer.ts @@ -665,6 +665,7 @@ export default function (state = defaultState, action: AnyAction): Notifications jobFetching: { message: 'Error during fetching a job', reason: action.payload.error.toString(), + className: 'cvat-notification-notice-fetch-job-failed', }, }, }, diff --git a/tests/cypress/integration/actions_projects/case_57_project_label_deleting_feature.js b/tests/cypress/integration/actions_projects/case_57_project_label_deleting_feature.js new file mode 100644 index 000000000000..8c285a1017b1 --- /dev/null +++ b/tests/cypress/integration/actions_projects/case_57_project_label_deleting_feature.js @@ -0,0 +1,89 @@ +// Copyright (C) 2021 Intel Corporation +// +// SPDX-License-Identifier: MIT + +/// + +import { projectName, labelName } from '../../support/const_project'; + +context('Delete a label from a project.', () => { + const caseID = 57; + const taskName = `Task case ${caseID}`; + const attrName = `Attr for ${labelName}`; + const textDefaultValue = 'Some value for type Text'; + const imagesCount = 1; + const imageFileName = `image_${taskName.replace(/\s+/g, '_').toLowerCase()}`; + const width = 800; + const height = 800; + const posX = 10; + const posY = 10; + const color = 'white'; + const archiveName = `${imageFileName}.zip`; + const archivePath = `cypress/fixtures/${archiveName}`; + const imagesFolder = `cypress/fixtures/${imageFileName}`; + const directoryToArchive = imagesFolder; + const advancedConfigurationParams = false; + const forProject = true; + const attachToProject = false; + const multiAttrParams = false; + let projectID = ''; + + function getProjectID(projectName) { + cy.contains('.cvat-project-name', projectName) + .parents('.cvat-project-details') + .should('have.attr', 'cvat-project-id') + .then(($projectID) => { + projectID = $projectID; + }); + } + + before(() => { + cy.imageGenerator(imagesFolder, imageFileName, width, height, color, posX, posY, labelName, imagesCount); + cy.createZipArchive(directoryToArchive, archivePath); + cy.openProject(projectName); + }); + + after(() => { + cy.goToProjectsList(); + cy.deleteProject(projectName, projectID); + }); + + describe(`Testing "Case ${caseID}"`, () => { + it('Create a task from project.', () => { + cy.createAnnotationTask( + taskName, + labelName, + attrName, + textDefaultValue, + archiveName, + multiAttrParams, + advancedConfigurationParams, + forProject, + attachToProject, + projectName, + ); + }); + + it('Delete a label from project.', () => { + cy.openProject(projectName); + getProjectID(projectName); + cy.contains('.cvat-constructor-viewer-item', labelName) + .should('exist') + .and('be.visible') + .find('[aria-label="close"]') + .click(); + cy.get('.cvat-modal-delete-label') + .should('be.visible') + .within(() => { + cy.contains('[type="button"]', 'OK').click(); + }); + cy.contains('.cvat-constructor-viewer-item', labelName).should('not.exist'); + }); + + it('Try to open job with no labels in the project. Successful.', () => { + cy.openTaskJob(taskName); + cy.get('.cvat-disabled-canvas-control').should('exist'); + cy.contains('.cvat-notification-no-labels', 'does not contain any label').should('exist').and('be.visible'); + }); + }); +}); diff --git a/tests/cypress/integration/actions_tasks_objects/case_58_task_label_deleting_feature.js b/tests/cypress/integration/actions_tasks_objects/case_58_task_label_deleting_feature.js new file mode 100644 index 000000000000..9779e402f73b --- /dev/null +++ b/tests/cypress/integration/actions_tasks_objects/case_58_task_label_deleting_feature.js @@ -0,0 +1,60 @@ +// Copyright (C) 2021 Intel Corporation +// +// SPDX-License-Identifier: MIT + +/// + +context('Delete a label from a task.', () => { + const caseId = '58'; + const labelName = `Case ${caseId}`; + const taskName = `New annotation task for ${labelName}`; + const attrName = `Attr for ${labelName}`; + const textDefaultValue = 'Some default value for type Text'; + const imagesCount = 1; + const imageFileName = `image_${labelName.replace(' ', '_').toLowerCase()}`; + const width = 800; + const height = 800; + const posX = 10; + const posY = 10; + const color = 'gray'; + const archiveName = `${imageFileName}.zip`; + const archivePath = `cypress/fixtures/${archiveName}`; + const imagesFolder = `cypress/fixtures/${imageFileName}`; + const directoryToArchive = imagesFolder; + + before(() => { + cy.visit('auth/login'); + cy.login(); + cy.imageGenerator(imagesFolder, imageFileName, width, height, color, posX, posY, labelName, imagesCount); + cy.createZipArchive(directoryToArchive, archivePath); + cy.createAnnotationTask(taskName, labelName, attrName, textDefaultValue, archiveName); + cy.openTask(taskName); + }); + + after(() => { + cy.goToTaskList(); + cy.deleteTask(taskName); + }); + + describe(`Testing "${labelName}"`, () => { + it('Delete a label from the task.', () => { + cy.contains('.cvat-constructor-viewer-item', labelName) + .should('exist') + .and('be.visible') + .find('[aria-label="close"]') + .click(); + cy.get('.cvat-modal-delete-label') + .should('be.visible') + .within(() => { + cy.contains('[type="button"]', 'OK').click(); + }); + cy.contains('.cvat-constructor-viewer-item', labelName).should('not.exist'); + }); + + it('Try to open a job with no labels. Successful.', () => { + cy.openJob(); + cy.get('.cvat-disabled-canvas-control').should('exist'); + cy.contains('.cvat-notification-no-labels', 'does not contain any label').should('exist').and('be.visible'); + }); + }); +}); diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js index d707c8eb018e..fbb896c1043c 100644 --- a/tests/cypress/support/commands.js +++ b/tests/cypress/support/commands.js @@ -162,12 +162,14 @@ Cypress.Commands.add('getJobNum', (jobID) => { }); }); -Cypress.Commands.add('openJob', (jobID = 0, removeAnnotations = true) => { +Cypress.Commands.add('openJob', (jobID = 0, removeAnnotations = true, expectedFail = false) => { cy.getJobNum(jobID).then(($job) => { cy.get('.cvat-task-jobs-table-row').contains('a', `Job #${$job}`).click(); }); cy.url().should('include', '/jobs'); - cy.get('.cvat-canvas-container').should('exist'); + expectedFail + ? cy.get('.cvat-canvas-container').should('not.exist') + : cy.get('.cvat-canvas-container').should('exist'); if (removeAnnotations) { cy.document().then((doc) => { const objects = Array.from(doc.querySelectorAll('.cvat_canvas_shape')); @@ -179,9 +181,9 @@ Cypress.Commands.add('openJob', (jobID = 0, removeAnnotations = true) => { } }); -Cypress.Commands.add('openTaskJob', (taskName, jobID = 0, removeAnnotations = true) => { +Cypress.Commands.add('openTaskJob', (taskName, jobID = 0, removeAnnotations = true, expectedFail = false) => { cy.openTask(taskName); - cy.openJob(jobID, removeAnnotations); + cy.openJob(jobID, removeAnnotations, expectedFail); }); Cypress.Commands.add('interactControlButton', (objectType) => { From 2c5188f5b6540385d0fba8106a5c2c030553ce18 Mon Sep 17 00:00:00 2001 From: Maxim Zhiltsov Date: Fri, 19 Mar 2021 13:56:15 +0300 Subject: [PATCH 4/7] Add label check on import (#2935) * Add label check on import * include annotation type * update changelog * Make the message prettier --- CHANGELOG.md | 1 + cvat/apps/dataset_manager/bindings.py | 60 +++++++++++++++------------ cvat/apps/engine/views.py | 13 +++++- 3 files changed, 47 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce9415bb3961..ba3923cbdec1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved maintanance of popups visibility () - Image visualizations settings on canvas for faster access () - Better scale management of left panel when screen is too small () +- Improved error messages for annotation import () ### Deprecated diff --git a/cvat/apps/dataset_manager/bindings.py b/cvat/apps/dataset_manager/bindings.py index a336a00715d5..a8d2fcb98da3 100644 --- a/cvat/apps/dataset_manager/bindings.py +++ b/cvat/apps/dataset_manager/bindings.py @@ -601,6 +601,9 @@ def convert_attrs(label, cvat_attrs): return item_anno +class CvatImportError(Exception): + pass + def match_dm_item(item, task_data, root_hint=None): is_video = task_data.meta['task']['mode'] == 'interpolation' @@ -615,8 +618,8 @@ def match_dm_item(item, task_data, root_hint=None): frame_number = cast(osp.basename(item.id)[len('frame_'):], int) if not frame_number in task_data.frame_info: - raise Exception("Could not match item id: '%s' with any task frame" % - item.id) + raise CvatImportError("Could not match item id: " + "'%s' with any task frame" % item.id) return frame_number def find_dataset_root(dm_dataset, task_data): @@ -631,7 +634,6 @@ def find_dataset_root(dm_dataset, task_data): prefix = prefix[:-1] return prefix - def import_dm_annotations(dm_dataset, task_data): shapes = { datumaro.AnnotationType.bbox: ShapeType.RECTANGLE, @@ -667,26 +669,32 @@ def import_dm_annotations(dm_dataset, task_data): if 1 < s and group_map[g]} group_map = {g: i for i, g in enumerate([0] + sorted(group_map))} - for ann in item.annotations: - if ann.type in shapes: - task_data.add_shape(task_data.LabeledShape( - type=shapes[ann.type], - frame=frame_number, - label=label_cat.items[ann.label].name, - points=ann.points, - occluded=ann.attributes.get('occluded') == True, - z_order=ann.z_order, - group=group_map.get(ann.group, 0), - source='manual', - attributes=[task_data.Attribute(name=n, value=str(v)) - for n, v in ann.attributes.items()], - )) - elif ann.type == datumaro.AnnotationType.label: - task_data.add_tag(task_data.Tag( - frame=frame_number, - label=label_cat.items[ann.label].name, - group=group_map.get(ann.group, 0), - source='manual', - attributes=[task_data.Attribute(name=n, value=str(v)) - for n, v in ann.attributes.items()], - )) + for idx, ann in enumerate(item.annotations): + try: + if hasattr(ann, 'label') and ann.label is None: + raise CvatImportError("annotation has no label") + if ann.type in shapes: + task_data.add_shape(task_data.LabeledShape( + type=shapes[ann.type], + frame=frame_number, + label=label_cat.items[ann.label].name, + points=ann.points, + occluded=ann.attributes.get('occluded') == True, + z_order=ann.z_order, + group=group_map.get(ann.group, 0), + source='manual', + attributes=[task_data.Attribute(name=n, value=str(v)) + for n, v in ann.attributes.items()], + )) + elif ann.type == datumaro.AnnotationType.label: + task_data.add_tag(task_data.Tag( + frame=frame_number, + label=label_cat.items[ann.label].name, + group=group_map.get(ann.group, 0), + source='manual', + attributes=[task_data.Attribute(name=n, value=str(v)) + for n, v in ann.attributes.items()], + )) + except Exception as e: + raise CvatImportError("Image {}: can't import annotation " + "#{} ({}): {}".format(item.id, idx, ann.type.name, e)) \ No newline at end of file diff --git a/cvat/apps/engine/views.py b/cvat/apps/engine/views.py index 11a1750ec52f..5ab76673b72e 100644 --- a/cvat/apps/engine/views.py +++ b/cvat/apps/engine/views.py @@ -37,6 +37,7 @@ import cvat.apps.dataset_manager as dm import cvat.apps.dataset_manager.views # pylint: disable=unused-import from cvat.apps.authentication import auth +from cvat.apps.dataset_manager.bindings import CvatImportError from cvat.apps.dataset_manager.serializers import DatasetFormatsSerializer from cvat.apps.engine.frame_provider import FrameProvider from cvat.apps.engine.models import ( @@ -1030,7 +1031,17 @@ def _import_annotations(request, rq_id, rq_func, pk, format_name): os.remove(rq_job.meta['tmp_file']) exc_info = str(rq_job.exc_info) rq_job.delete() - return Response(data=exc_info, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + # RQ adds a prefix with exception class name + import_error_prefix = '{}.{}'.format( + CvatImportError.__module__, CvatImportError.__name__) + if exc_info.startswith(import_error_prefix): + exc_info = exc_info.replace(import_error_prefix + ': ', '') + return Response(data=exc_info, + status=status.HTTP_400_BAD_REQUEST) + else: + return Response(data=exc_info, + status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response(status=status.HTTP_202_ACCEPTED) From 9e10f5e77543f3df610a032462ca61f3f73ae9ac Mon Sep 17 00:00:00 2001 From: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com> Date: Fri, 19 Mar 2021 16:06:31 +0300 Subject: [PATCH 5/7] Update Cypress test for check issue 2968. (#2974) * Update test. Add check issue 2968. * Apply comments --- ...44_changing_default_value_for_attribute.js | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tests/cypress/integration/actions_tasks_objects/case_44_changing_default_value_for_attribute.js b/tests/cypress/integration/actions_tasks_objects/case_44_changing_default_value_for_attribute.js index 357078010dfb..1692b339195a 100644 --- a/tests/cypress/integration/actions_tasks_objects/case_44_changing_default_value_for_attribute.js +++ b/tests/cypress/integration/actions_tasks_objects/case_44_changing_default_value_for_attribute.js @@ -11,6 +11,7 @@ context('Changing a default value for an attribute.', () => { const additionalLabel = `Case ${caseId}`; const additionalAttrsLabel = [ { additionalAttrName: 'type', additionalValue: '', typeAttribute: 'Text' }, + { additionalAttrName: 'count', additionalValue: '0;5;1', typeAttribute: 'Number' }, // Check issue 2968 { additionalAttrName: 'shape', additionalValue: 'False', typeAttribute: 'Checkbox' }, ]; const rectangleShape2Points = { @@ -30,7 +31,7 @@ context('Changing a default value for an attribute.', () => { cy.openTask(taskName); }); - describe(`Testing case "${caseId}"`, () => { + describe(`Testing case "${caseId}", issue 2968`, () => { it('Add a label, add text (leave it’s value empty by default) & checkbox attributes.', () => { cy.intercept('PATCH', '/api/v1/tasks/**').as('patchTask'); cy.intercept('GET', '/api/v1/tasks**').as('getTask'); @@ -55,15 +56,19 @@ context('Changing a default value for an attribute.', () => { const minId = Math.min(...wrapperId); const maxId = Math.max(...wrapperId); cy.get(`[cvat-attribute-id="${minId}"]`).find('.cvat-attribute-values-input').type(newTextValue); - cy.task('log', `minId: ${minId}`); cy.get(`[cvat-attribute-id="${maxId}"]`).find('.cvat-attribute-values-input').click().wait(500); // Wait for the dropdown menu to transition. - cy.task('log', `maxId: ${maxId}`); }); }); cy.get('.ant-select-dropdown').within(() => { cy.contains(new RegExp(`^${newCheckboxValue}$`)).click(); }); cy.contains('[type="submit"]', 'Done').click(); + cy.contains( + '[role="alert"]', + `Validation error on field 'attributes.${additionalAttrsLabel.indexOf( + additionalAttrsLabel[1], + )}.values'`, + ).should('not.exist'); cy.wait('@patchTask').its('response.statusCode').should('equal', 200); }); @@ -71,8 +76,13 @@ context('Changing a default value for an attribute.', () => { cy.openJob(); cy.createRectangle(rectangleShape2Points); cy.get('#cvat_canvas_shape_1').trigger('mousemove'); - cy.contains(new RegExp(`^type: ${newTextValue}$`)).should('be.visible'); - cy.contains(new RegExp(`^shape: ${newCheckboxValue.toLowerCase()}$`)).should('be.visible'); + [ + [additionalAttrsLabel[0].additionalAttrName, newTextValue], + [additionalAttrsLabel[1].additionalAttrName, additionalAttrsLabel[1].additionalValue.split(';')[0]], + [additionalAttrsLabel[2].additionalAttrName, newCheckboxValue.toLowerCase()], + ].forEach(([attrName, attrValue]) => { + cy.contains(new RegExp(`^${attrName}: ${attrValue}$`)).should('be.visible'); + }); }); }); }); From ea83f18f32baf88ad59ff4eec524647dac439b90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Mar 2021 08:30:09 +0300 Subject: [PATCH 6/7] Bump djangorestframework from 3.11.1 to 3.11.2 in /cvat/requirements (#2984) Bumps [djangorestframework](https://github.com/encode/django-rest-framework) from 3.11.1 to 3.11.2. - [Release notes](https://github.com/encode/django-rest-framework/releases) - [Commits](https://github.com/encode/django-rest-framework/compare/3.11.1...3.11.2) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- cvat/requirements/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cvat/requirements/base.txt b/cvat/requirements/base.txt index 46e099bb1828..25a1573a0f8f 100644 --- a/cvat/requirements/base.txt +++ b/cvat/requirements/base.txt @@ -27,7 +27,7 @@ GitPython==3.1.8 coreapi==2.3.3 django-filter==2.3.0 Markdown==3.2.2 -djangorestframework==3.11.1 +djangorestframework==3.11.2 Pygments==2.7.4 drf-yasg==1.17.1 Shapely==1.7.1 From 750d9ccb0d0d63295b5c27371f58d1a0478d43d1 Mon Sep 17 00:00:00 2001 From: Snyk bot Date: Mon, 22 Mar 2021 10:05:40 +0200 Subject: [PATCH 7/7] fix: upgrade antd from 4.12.3 to 4.13.0 (#2988) Snyk has created this PR to upgrade antd from 4.12.3 to 4.13.0. See this package in npm: https://www.npmjs.com/package/antd See this project in Snyk: https://app.snyk.io/org/cvat/project/c1f463ee-3776-44c4-b0fa-cd2254d0a094?utm_source=github&utm_medium=upgrade-pr --- cvat-ui/package-lock.json | 386 +++++++++++++++++++------------------- cvat-ui/package.json | 2 +- 2 files changed, 195 insertions(+), 193 deletions(-) diff --git a/cvat-ui/package-lock.json b/cvat-ui/package-lock.json index 995af329ad5a..872e3682bae3 100644 --- a/cvat-ui/package-lock.json +++ b/cvat-ui/package-lock.json @@ -4,6 +4,14 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "requires": { + "@ctrl/tinycolor": "^3.4.0" + } + }, "@ant-design/icons": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.5.0.tgz", @@ -63,9 +71,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -1081,6 +1089,11 @@ "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true }, + "@ctrl/tinycolor": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz", + "integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==" + }, "@eslint/eslintrc": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", @@ -1886,9 +1899,9 @@ } }, "antd": { - "version": "4.12.3", - "resolved": "https://registry.npmjs.org/antd/-/antd-4.12.3.tgz", - "integrity": "sha512-opzbxm6jZB+Pc9M0Kuo6+4WmniB59NJ4i/qBr6ExyMtl9hMgsGNH8GuDXsp2xgTzfq5hyobdLci2DAuPMrf0Zg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/antd/-/antd-4.13.0.tgz", + "integrity": "sha512-+lwc8QmBh4g3VxXeIiMUTXc2u2HeKUC2RKUyK2mUBtOBmT8aqs/oEDdj7g146vQk2M/WHnqNo4cfBlDQk5rbMg==", "requires": { "@ant-design/colors": "^6.0.0", "@ant-design/icons": "^4.5.0", @@ -1903,11 +1916,11 @@ "rc-checkbox": "~2.3.0", "rc-collapse": "~3.1.0", "rc-dialog": "~8.5.1", - "rc-drawer": "~4.2.0", + "rc-drawer": "~4.3.0", "rc-dropdown": "~3.2.0", - "rc-field-form": "~1.18.0", - "rc-image": "~5.2.0", - "rc-input-number": "~6.2.0", + "rc-field-form": "~1.19.0", + "rc-image": "~5.2.3", + "rc-input-number": "~7.0.0-alpha.4", "rc-mentions": "~1.5.0", "rc-menu": "~8.10.0", "rc-motion": "^2.4.0", @@ -1928,50 +1941,24 @@ "rc-tree": "~4.1.0", "rc-tree-select": "~4.3.0", "rc-trigger": "^5.2.1", - "rc-upload": "~3.3.4", - "rc-util": "^5.7.0", + "rc-upload": "~4.0.0-alpha.6", + "rc-util": "^5.8.1", "scroll-into-view-if-needed": "^2.2.25", "warning": "^4.0.3" }, "dependencies": { - "@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", - "requires": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "@ant-design/icons": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.5.0.tgz", - "integrity": "sha512-ZAKJcmr4DBV3NWr8wm2dCxNKN4eFrX+qCaPsuFejP6FRsf+m5OKxvCVi9bSp1lmKWeOI5yECAx5s0uFm4QHuPw==", - "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.0.0", - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "insert-css": "^2.0.0", - "rc-util": "^5.0.1" - } - }, "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, - "@ctrl/tinycolor": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz", - "integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==" - }, "rc-util": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.8.1.tgz", - "integrity": "sha512-kXV/QjL+azh3AxMk68gm8+nltVoL6bjeJJULAZLRCLus2Fhvo/aaMZokxYov/E0dbfjo31I78pF4yVljqQB7bA==", + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.4.tgz", + "integrity": "sha512-pzFmYZsKLJ1p+Uv4NqA4aNBaFh8/hOQxOOxA5G4TiyPboa0o/PjminxUCKvoSwVJVW5YgleSM2XPCTpTV6DCsQ==", "requires": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -21357,9 +21344,9 @@ } }, "date-fns": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.18.0.tgz", - "integrity": "sha512-NYyAg4wRmGVU4miKq5ivRACOODdZRY3q5WLmOJSq8djyzftYphU7dTHLcEtLqEvfqMKQ0jVv91P4BAwIjsXIcw==" + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.19.0.tgz", + "integrity": "sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg==" }, "debug": { "version": "4.1.1", @@ -27923,9 +27910,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -27950,9 +27937,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -27974,9 +27961,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28001,9 +27988,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28016,9 +28003,9 @@ } }, "rc-dialog": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.5.1.tgz", - "integrity": "sha512-EcLgHHjF3Jp4C+TFceO2j7gIrpx0YIhY6ronki5QJDL/z+qWYozY5RNh4rnv4a6R21SPVhV+SK+gMMlMHZ/YRQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.5.2.tgz", + "integrity": "sha512-3n4taFcjqhTE9uNuzjB+nPDeqgRBTEGBfe46mb1e7r88DgDo0lL4NnxY/PZ6PJKd2tsCt+RrgF/+YeTvJ/Thsw==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.6", @@ -28027,17 +28014,17 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "rc-util": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.8.1.tgz", - "integrity": "sha512-kXV/QjL+azh3AxMk68gm8+nltVoL6bjeJJULAZLRCLus2Fhvo/aaMZokxYov/E0dbfjo31I78pF4yVljqQB7bA==", + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.4.tgz", + "integrity": "sha512-pzFmYZsKLJ1p+Uv4NqA4aNBaFh8/hOQxOOxA5G4TiyPboa0o/PjminxUCKvoSwVJVW5YgleSM2XPCTpTV6DCsQ==", "requires": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -28057,9 +28044,9 @@ } }, "rc-drawer": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-4.2.2.tgz", - "integrity": "sha512-zw48FATkAmJrEnfeRWiMqvKAzqGzUDLN1UXlluB7q7GgbR6mJFvc+QsmNrgxsFuMz86Lh9mKSIi7rXlPINmuzw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-4.3.1.tgz", + "integrity": "sha512-GMfFy4maqxS9faYXEhQ+0cA1xtkddEQzraf6SAdzWbn444DrrLogwYPk1NXSpdXjLCLxgxOj9MYtyYG42JsfXg==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.6", @@ -28067,17 +28054,17 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "rc-util": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.8.1.tgz", - "integrity": "sha512-kXV/QjL+azh3AxMk68gm8+nltVoL6bjeJJULAZLRCLus2Fhvo/aaMZokxYov/E0dbfjo31I78pF4yVljqQB7bA==", + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.4.tgz", + "integrity": "sha512-pzFmYZsKLJ1p+Uv4NqA4aNBaFh8/hOQxOOxA5G4TiyPboa0o/PjminxUCKvoSwVJVW5YgleSM2XPCTpTV6DCsQ==", "requires": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -28107,9 +28094,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28122,23 +28109,38 @@ } }, "rc-field-form": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.18.1.tgz", - "integrity": "sha512-/YRnelnHLxygl/ROGhFqfCT+uAZ5xLvu3qjtlETOneb7fXKk7tqp+RGfYqZ4uNViXlsfxox3qqMMTVet6wYfEA==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.19.0.tgz", + "integrity": "sha512-FZFyE6FmhR4xGO3MVo86J2sHIM6t/W4UqN94nVqZC/9PLhzSaKuM0i9UfwFMtuENP2hxFANEQZMBrD/2Zd43pg==", "requires": { "@babel/runtime": "^7.8.4", "async-validator": "^3.0.3", - "rc-util": "^5.0.0" + "rc-util": "^5.8.0" }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, + "rc-util": { + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.4.tgz", + "integrity": "sha512-pzFmYZsKLJ1p+Uv4NqA4aNBaFh8/hOQxOOxA5G4TiyPboa0o/PjminxUCKvoSwVJVW5YgleSM2XPCTpTV6DCsQ==", + "requires": { + "@babel/runtime": "^7.12.5", + "react-is": "^16.12.0", + "shallowequal": "^1.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", @@ -28147,9 +28149,9 @@ } }, "rc-image": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-5.2.3.tgz", - "integrity": "sha512-8qWNerW1rN0s4zAF6oEa+Zm7UzM+PwTxbGdufvnR3Gcp2M0bcfoEPk9V+RgTxmzGNNELxmrMHloPL4LV5BZu3Q==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-5.2.4.tgz", + "integrity": "sha512-kWOjhZC1OoGKfvWqtDoO9r8WUNswBwnjcstI6rf7HMudz0usmbGvewcWqsOhyaBRJL9+I4eeG+xiAoxV1xi75Q==", "requires": { "@babel/runtime": "^7.11.2", "classnames": "^2.2.6", @@ -28158,9 +28160,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28173,9 +28175,9 @@ } }, "rc-input-number": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-6.2.0.tgz", - "integrity": "sha512-EaDkGvJN1YZdLntY2isYjHejgX6hDCcW8Te7hIGsVp3Egzn179s1PVVLQmSEfT1YC+bf+SE5EZOpw0IH7dq33w==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.0.2.tgz", + "integrity": "sha512-9AcD3/D18Oa41xZnBFvJ0fdp6AJkf/en8uKi8E69Ct+sh64qIYbWUXeh1PXhJgrCHIoNNT8OWaTebypT4/d3ZA==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -28183,9 +28185,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28211,9 +28213,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28241,17 +28243,17 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "rc-util": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.8.1.tgz", - "integrity": "sha512-kXV/QjL+azh3AxMk68gm8+nltVoL6bjeJJULAZLRCLus2Fhvo/aaMZokxYov/E0dbfjo31I78pF4yVljqQB7bA==", + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.4.tgz", + "integrity": "sha512-pzFmYZsKLJ1p+Uv4NqA4aNBaFh8/hOQxOOxA5G4TiyPboa0o/PjminxUCKvoSwVJVW5YgleSM2XPCTpTV6DCsQ==", "requires": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -28281,9 +28283,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28307,9 +28309,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28333,17 +28335,17 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "rc-util": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.8.1.tgz", - "integrity": "sha512-kXV/QjL+azh3AxMk68gm8+nltVoL6bjeJJULAZLRCLus2Fhvo/aaMZokxYov/E0dbfjo31I78pF4yVljqQB7bA==", + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.4.tgz", + "integrity": "sha512-pzFmYZsKLJ1p+Uv4NqA4aNBaFh8/hOQxOOxA5G4TiyPboa0o/PjminxUCKvoSwVJVW5YgleSM2XPCTpTV6DCsQ==", "requires": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -28363,18 +28365,18 @@ } }, "rc-pagination": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.3.tgz", - "integrity": "sha512-Z7CdC4xGkedfAwcUHPtfqNhYwVyDgkmhkvfsmoByCOwAd89p42t5O5T3ORar1wRmVWf3jxk/Bf4k0atenNvlFA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.6.tgz", + "integrity": "sha512-Pb2zJEt8uxXzYCWx/2qwsYZ3vSS9Eqdw0cJBli6C58/iYhmvutSBqrBJh51Z5UzYc5ZcW5CMeP5LbbKE1J3rpw==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.1" }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28387,9 +28389,9 @@ } }, "rc-picker": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.5.7.tgz", - "integrity": "sha512-b5ZWCKds1u4H9fP0EpJ8YUX16VhueK6E7TxgK+rRjpbKwI1bOUy59F/OkUXjdACJdDmbsDMDZogpW7KzoqtzvA==", + "version": "2.5.10", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.5.10.tgz", + "integrity": "sha512-d2or2jql9SSY8CaRPybpbKkXBq3bZ6g88UKyWQZBLTCrc92Xm87RfRC/P3UEQo/CLmia3jVF7IXVi1HmNe2DZA==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.1", @@ -28401,9 +28403,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28425,9 +28427,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28450,9 +28452,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28476,9 +28478,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28491,9 +28493,9 @@ } }, "rc-select": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-12.1.5.tgz", - "integrity": "sha512-UElTMw0+XvYJmVfsHTWvLR42RKNf5qyN3Ed/JfuZQceIPK1/3ugGRjdEOKBsPmPyNB5389NAROCV4tQd9fmqwg==", + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-12.1.7.tgz", + "integrity": "sha512-sLZlfp+U7Typ+jPM5gTi8I4/oJalRw8kyhxZZ9Q4mEfO2p+otd1Chmzhh+wPraBY3IwE0RZM2/x1Leg/kQKk/w==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -28505,9 +28507,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28532,9 +28534,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28557,9 +28559,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28582,9 +28584,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28597,9 +28599,9 @@ } }, "rc-table": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.13.1.tgz", - "integrity": "sha512-zg2ldSRHj1ENGsSykSKV5axnWkSaaly+wjRcD1Bspx4WHrf3m/I1WYjpVvOeer2e06bfKb6lmkK0HLxQ1cZtsg==", + "version": "7.13.3", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.13.3.tgz", + "integrity": "sha512-oP4fknjvKCZAaiDnvj+yzBaWcg+JYjkASbeWonU1BbrLcomkpKvMUgPODNEzg0QdXA9OGW0PO86h4goDSW06Kg==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -28609,9 +28611,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28637,9 +28639,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28663,17 +28665,17 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "rc-util": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.8.1.tgz", - "integrity": "sha512-kXV/QjL+azh3AxMk68gm8+nltVoL6bjeJJULAZLRCLus2Fhvo/aaMZokxYov/E0dbfjo31I78pF4yVljqQB7bA==", + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.4.tgz", + "integrity": "sha512-pzFmYZsKLJ1p+Uv4NqA4aNBaFh8/hOQxOOxA5G4TiyPboa0o/PjminxUCKvoSwVJVW5YgleSM2XPCTpTV6DCsQ==", "requires": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -28702,9 +28704,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28717,9 +28719,9 @@ } }, "rc-tree": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-4.1.2.tgz", - "integrity": "sha512-9yhhDqHxG8gOZfkZeHYT6oarzarzi37lDe5c2r72tq5dflvoayGqD2bMkL2KC7GQJPLknZrtCwAbewqvD/T6NQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-4.1.5.tgz", + "integrity": "sha512-q2vjcmnBDylGZ9/ZW4F9oZMKMJdbFWC7um+DAQhZG1nqyg1iwoowbBggUDUaUOEryJP+08bpliEAYnzJXbI5xQ==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -28729,9 +28731,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28756,9 +28758,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28783,9 +28785,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -28798,9 +28800,9 @@ } }, "rc-upload": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-3.3.4.tgz", - "integrity": "sha512-v2sirR4JL31UTHD/f0LGUdd+tpFaOVUTPeIEjAXRP9kRN8TFhqOgcXl5ixtyqj90FmtRUmKmafCv0EmhBQUHqQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.0.1.tgz", + "integrity": "sha512-h7iLt22U0C2ObpqTU7MDoAV/FDwHTUEFjMd6uidA4ipoJ7gP7C74gOQOtl5OPQTVUDATUndnSAt9uyC1znlo9A==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -28808,9 +28810,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } diff --git a/cvat-ui/package.json b/cvat-ui/package.json index e781c09a3dc1..8872b18eb851 100644 --- a/cvat-ui/package.json +++ b/cvat-ui/package.json @@ -60,7 +60,7 @@ "@types/react-share": "^3.0.3", "@types/redux-logger": "^3.0.8", "@types/resize-observer-browser": "^0.1.5", - "antd": "^4.12.3", + "antd": "^4.13.0", "copy-to-clipboard": "^3.3.1", "cvat-canvas": "file:../cvat-canvas", "cvat-canvas3d": "file:../cvat-canvas3d",