Revert "Updating tests for migration to a new version of antd (#3623)"

This reverts commit 1ecb44a63e.
main
Nikita Manovich 4 years ago
parent 1ecb44a63e
commit 0fd8b5d49e

@ -1995,6 +1995,12 @@
"postcss-value-parser": "^4.0.2" "postcss-value-parser": "^4.0.2"
}, },
"dependencies": { "dependencies": {
"caniuse-lite": {
"version": "1.0.30001016",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz",
"integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==",
"dev": true
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.322", "version": "1.3.322",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz",
@ -2347,6 +2353,12 @@
"node-releases": "^1.1.71" "node-releases": "^1.1.71"
}, },
"dependencies": { "dependencies": {
"caniuse-lite": {
"version": "1.0.30001228",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz",
"integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==",
"dev": true
},
"colorette": { "colorette": {
"version": "1.2.2", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
@ -2501,9 +2513,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001251", "version": "1.0.30000985",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000985.tgz",
"integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==", "integrity": "sha512-1ngiwkgqAYPG0JSSUp3PUDGPKKY59EK7NrGGX+VOxaKCNzRbNc7uXMny+c3VJfZxtoK3wSImTvG9T9sXiTw2+w==",
"dev": true "dev": true
}, },
"caseless": { "caseless": {
@ -10366,6 +10378,11 @@
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true "dev": true
}, },
"caniuse-lite": {
"version": "1.0.30001185",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz",
"integrity": "sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg=="
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.654", "version": "1.3.654",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.654.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.654.tgz",

@ -1816,6 +1816,12 @@
"resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-1.25.3.tgz", "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-1.25.3.tgz",
"integrity": "sha512-hcPgd3ly69N+HU8LRsyCmDh4N5YAbyDLB2LwbwOJdFoXomvpEi1BPGIJCbHbzp/n+CrisEjgeCHJprqy7GT2Dg==" "integrity": "sha512-hcPgd3ly69N+HU8LRsyCmDh4N5YAbyDLB2LwbwOJdFoXomvpEi1BPGIJCbHbzp/n+CrisEjgeCHJprqy7GT2Dg=="
}, },
"caniuse-lite": {
"version": "1.0.30001016",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz",
"integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==",
"dev": true
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.322", "version": "1.3.322",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz",
@ -2366,9 +2372,9 @@
"integrity": "sha512-hcPgd3ly69N+HU8LRsyCmDh4N5YAbyDLB2LwbwOJdFoXomvpEi1BPGIJCbHbzp/n+CrisEjgeCHJprqy7GT2Dg==" "integrity": "sha512-hcPgd3ly69N+HU8LRsyCmDh4N5YAbyDLB2LwbwOJdFoXomvpEi1BPGIJCbHbzp/n+CrisEjgeCHJprqy7GT2Dg=="
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001251", "version": "1.0.30000985",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000985.tgz",
"integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==", "integrity": "sha512-1ngiwkgqAYPG0JSSUp3PUDGPKKY59EK7NrGGX+VOxaKCNzRbNc7uXMny+c3VJfZxtoK3wSImTvG9T9sXiTw2+w==",
"dev": true "dev": true
}, },
"capture-stack-trace": { "capture-stack-trace": {

@ -1628,9 +1628,9 @@
"dev": true "dev": true
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001251", "version": "1.0.30001002",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001002.tgz",
"integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==", "integrity": "sha512-pRuxPE8wdrWmVPKcDmJJiGBxr6lFJq4ivdSeo9FTmGj5Rb8NX3Mby2pARG57MXF15hYAhZ0nHV5XxT2ig4bz3g==",
"dev": true "dev": true
}, },
"capture-stack-trace": { "capture-stack-trace": {
@ -3432,28 +3432,28 @@
"dependencies": { "dependencies": {
"abbrev": { "abbrev": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "", "resolved": false,
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "", "resolved": false,
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "", "resolved": false,
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"are-we-there-yet": { "are-we-there-yet": {
"version": "1.1.5", "version": "1.1.5",
"resolved": "", "resolved": false,
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3464,14 +3464,14 @@
}, },
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "", "resolved": false,
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"resolved": "", "resolved": false,
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3482,42 +3482,42 @@
}, },
"chownr": { "chownr": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "", "resolved": false,
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "", "resolved": false,
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "", "resolved": false,
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "", "resolved": false,
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "", "resolved": false,
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"debug": { "debug": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "", "resolved": false,
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3527,28 +3527,28 @@
}, },
"deep-extend": { "deep-extend": {
"version": "0.6.0", "version": "0.6.0",
"resolved": "", "resolved": false,
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "", "resolved": false,
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"detect-libc": { "detect-libc": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "", "resolved": false,
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"fs-minipass": { "fs-minipass": {
"version": "1.2.5", "version": "1.2.5",
"resolved": "", "resolved": false,
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3558,14 +3558,14 @@
}, },
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "", "resolved": false,
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"gauge": { "gauge": {
"version": "2.7.4", "version": "2.7.4",
"resolved": "", "resolved": false,
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3582,7 +3582,7 @@
}, },
"glob": { "glob": {
"version": "7.1.3", "version": "7.1.3",
"resolved": "", "resolved": false,
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3597,14 +3597,14 @@
}, },
"has-unicode": { "has-unicode": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "", "resolved": false,
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"iconv-lite": { "iconv-lite": {
"version": "0.4.24", "version": "0.4.24",
"resolved": "", "resolved": false,
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3614,7 +3614,7 @@
}, },
"ignore-walk": { "ignore-walk": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "", "resolved": false,
"integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3624,7 +3624,7 @@
}, },
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "", "resolved": false,
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3635,7 +3635,7 @@
}, },
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "", "resolved": false,
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true, "dev": true,
"optional": true "optional": true
@ -3649,7 +3649,7 @@
}, },
"is-fullwidth-code-point": { "is-fullwidth-code-point": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "", "resolved": false,
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3659,14 +3659,14 @@
}, },
"isarray": { "isarray": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "", "resolved": false,
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "", "resolved": false,
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3676,7 +3676,7 @@
}, },
"minipass": { "minipass": {
"version": "2.3.5", "version": "2.3.5",
"resolved": "", "resolved": false,
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3687,7 +3687,7 @@
}, },
"minizlib": { "minizlib": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "", "resolved": false,
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3707,14 +3707,14 @@
}, },
"ms": { "ms": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "", "resolved": false,
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"needle": { "needle": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "", "resolved": false,
"integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3726,7 +3726,7 @@
}, },
"node-pre-gyp": { "node-pre-gyp": {
"version": "0.12.0", "version": "0.12.0",
"resolved": "", "resolved": false,
"integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3745,7 +3745,7 @@
}, },
"nopt": { "nopt": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "", "resolved": false,
"integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3756,14 +3756,14 @@
}, },
"npm-bundled": { "npm-bundled": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "", "resolved": false,
"integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"npm-packlist": { "npm-packlist": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "", "resolved": false,
"integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3774,7 +3774,7 @@
}, },
"npmlog": { "npmlog": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "", "resolved": false,
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3787,21 +3787,21 @@
}, },
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "", "resolved": false,
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "", "resolved": false,
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"once": { "once": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "", "resolved": false,
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3811,21 +3811,21 @@
}, },
"os-homedir": { "os-homedir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "", "resolved": false,
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"os-tmpdir": { "os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "", "resolved": false,
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"osenv": { "osenv": {
"version": "0.1.5", "version": "0.1.5",
"resolved": "", "resolved": false,
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3836,21 +3836,21 @@
}, },
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "", "resolved": false,
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"process-nextick-args": { "process-nextick-args": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "", "resolved": false,
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"rc": { "rc": {
"version": "1.2.8", "version": "1.2.8",
"resolved": "", "resolved": false,
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3872,7 +3872,7 @@
}, },
"readable-stream": { "readable-stream": {
"version": "2.3.6", "version": "2.3.6",
"resolved": "", "resolved": false,
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3888,7 +3888,7 @@
}, },
"rimraf": { "rimraf": {
"version": "2.6.3", "version": "2.6.3",
"resolved": "", "resolved": false,
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3898,49 +3898,49 @@
}, },
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "", "resolved": false,
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "", "resolved": false,
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"sax": { "sax": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "", "resolved": false,
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"semver": { "semver": {
"version": "5.7.0", "version": "5.7.0",
"resolved": "", "resolved": false,
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"set-blocking": { "set-blocking": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "", "resolved": false,
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"signal-exit": { "signal-exit": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "", "resolved": false,
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "", "resolved": false,
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3952,7 +3952,7 @@
}, },
"string_decoder": { "string_decoder": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "", "resolved": false,
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3962,7 +3962,7 @@
}, },
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "", "resolved": false,
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3972,14 +3972,14 @@
}, },
"strip-json-comments": { "strip-json-comments": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "", "resolved": false,
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"tar": { "tar": {
"version": "4.4.8", "version": "4.4.8",
"resolved": "", "resolved": false,
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -3995,14 +3995,14 @@
}, },
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "", "resolved": false,
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"wide-align": { "wide-align": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "", "resolved": false,
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
@ -4012,14 +4012,14 @@
}, },
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "", "resolved": false,
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.3", "version": "3.0.3",
"resolved": "", "resolved": false,
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
"dev": true, "dev": true,
"optional": true "optional": true
@ -7133,6 +7133,12 @@
"node-releases": "^1.1.70" "node-releases": "^1.1.70"
} }
}, },
"caniuse-lite": {
"version": "1.0.30001185",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz",
"integrity": "sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==",
"dev": true
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.654", "version": "1.3.654",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.654.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.654.tgz",

File diff suppressed because it is too large Load Diff

@ -57,9 +57,9 @@
"@ant-design/icons": "^4.6.3", "@ant-design/icons": "^4.6.3",
"@types/lodash": "^4.14.172", "@types/lodash": "^4.14.172",
"@types/platform": "^1.3.4", "@types/platform": "^1.3.4",
"@types/react": "^17.0.18", "@types/react": "^16.14.12",
"@types/react-color": "^3.0.5", "@types/react-color": "^3.0.5",
"@types/react-dom": "^17.0.9", "@types/react-dom": "^16.9.14",
"@types/react-redux": "^7.1.18", "@types/react-redux": "^7.1.18",
"@types/react-resizable": "^1.7.3", "@types/react-resizable": "^1.7.3",
"@types/react-router": "^5.1.16", "@types/react-router": "^5.1.16",
@ -67,7 +67,7 @@
"@types/react-share": "^3.0.3", "@types/react-share": "^3.0.3",
"@types/redux-logger": "^3.0.9", "@types/redux-logger": "^3.0.9",
"@types/resize-observer-browser": "^0.1.6", "@types/resize-observer-browser": "^0.1.6",
"antd": "^4.16.12", "antd": "^4.13.0",
"copy-to-clipboard": "^3.3.1", "copy-to-clipboard": "^3.3.1",
"cvat-canvas": "file:../cvat-canvas", "cvat-canvas": "file:../cvat-canvas",
"cvat-canvas3d": "file:../cvat-canvas3d", "cvat-canvas3d": "file:../cvat-canvas3d",
@ -80,17 +80,17 @@
"platform": "^1.3.6", "platform": "^1.3.6",
"prop-types": "^15.7.2", "prop-types": "^15.7.2",
"rc-menu": "^8.10.8", "rc-menu": "^8.10.8",
"react": "^17.0.0", "react": "^16.14.0",
"react-awesome-query-builder": "^4.4.2", "react-awesome-query-builder": "^3.0.0",
"react-color": "^2.19.3", "react-color": "^2.19.3",
"react-cookie": "^4.0.3", "react-cookie": "^4.1.1",
"react-dom": "^17.0.0", "react-dom": "^16.14.0",
"react-moment": "^1.1.1", "react-moment": "^1.1.1",
"react-redux": "^7.2.4", "react-redux": "^7.2.4",
"react-resizable": "^1.11.1", "react-resizable": "^1.11.1",
"react-router": "^5.1.0", "react-router": "^5.1.0",
"react-router-dom": "^5.1.0", "react-router-dom": "^5.1.0",
"react-share": "^4.4.0", "react-share": "^3.0.1",
"redux": "^4.1.1", "redux": "^4.1.1",
"redux-devtools-extension": "^2.13.9", "redux-devtools-extension": "^2.13.9",
"redux-logger": "^3.0.6", "redux-logger": "^3.0.6",

@ -115,7 +115,7 @@ export default function ActionsMenuComponent(props: Props): JSX.Element {
{exportIsActive && <LoadingOutlined id='cvat-export-task-loading' />} {exportIsActive && <LoadingOutlined id='cvat-export-task-loading' />}
Export task Export task
</Menu.Item> </Menu.Item>
<Menu.Divider /> <hr />
<Menu.Item key={Actions.MOVE_TASK_TO_PROJECT}>Move to project</Menu.Item> <Menu.Item key={Actions.MOVE_TASK_TO_PROJECT}>Move to project</Menu.Item>
<Menu.Item key={Actions.DELETE_TASK}>Delete</Menu.Item> <Menu.Item key={Actions.DELETE_TASK}>Delete</Menu.Item>
</Menu> </Menu>

@ -1,4 +1,4 @@
// Copyright (C) 2021 Intel Corporation // Copyright (C) 2020 Intel Corporation
// //
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
@ -61,10 +61,7 @@ function ReviewContextMenu({
> >
{latestComments.map( {latestComments.map(
(comment: string, id: number): JSX.Element => ( (comment: string, id: number): JSX.Element => (
<Menu.Item <Menu.Item className='cvat-context-menu-item' key={`${id}`}>
className='cvat-context-menu-item cvat-quick-issue-from-latest-item'
key={`${id}`}
>
{comment} {comment}
</Menu.Item> </Menu.Item>
), ),

@ -4,40 +4,47 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import Popover, { PopoverProps } from 'antd/lib/popover'; import Popover, { PopoverProps } from 'antd/lib/popover';
import waitFor from 'utils/wait-for';
export default function withVisibilityHandling(WrappedComponent: typeof Popover, popoverType: string) { export default function withVisibilityHandling(WrappedComponent: typeof Popover, popoverType: string) {
return (props: PopoverProps): JSX.Element => { return (props: PopoverProps): JSX.Element => {
const [initialized, setInitialized] = useState<boolean>(false);
const [visible, setVisible] = useState<boolean>(false); const [visible, setVisible] = useState<boolean>(false);
const { overlayClassName, ...rest } = props; const { overlayClassName, ...rest } = props;
const overlayClassNames = typeof overlayClassName === 'string' ? overlayClassName.split(/\s+/) : []; const overlayClassNames = typeof overlayClassName === 'string' ? overlayClassName.split(/\s+/) : [];
const popoverClassName = `cvat-${popoverType}-popover`; const popoverClassName = `cvat-${popoverType}-popover`;
const visiblePopoverClassName = `cvat-${popoverType}-popover-visible`;
overlayClassNames.push(popoverClassName); overlayClassNames.push(popoverClassName);
if (visible) { if (visible) {
const visiblePopoverClassName = `cvat-${popoverType}-popover-visible`;
overlayClassNames.push(visiblePopoverClassName); overlayClassNames.push(visiblePopoverClassName);
} }
const callback = (event: Event): void => {
if ((event as AnimationEvent).animationName === 'antZoomBigIn') {
setVisible(true);
}
};
return ( return (
<WrappedComponent <WrappedComponent
{...rest} {...rest}
trigger={visible ? 'click' : 'hover'} trigger={visible ? 'click' : 'hover'}
overlayClassName={overlayClassNames.join(' ').trim()} overlayClassName={overlayClassNames.join(' ').trim()}
onVisibleChange={(_visible: boolean) => { onVisibleChange={(_visible: boolean) => {
const [element] = window.document.getElementsByClassName(popoverClassName); if (!_visible) {
if (element) { setVisible(false);
if (_visible) { } else {
// Hide other popovers
const element = window.document.getElementsByClassName(`${popoverClassName}`)[0];
if (element) {
element.dispatchEvent(new MouseEvent('mousedown', { bubbles: true })); element.dispatchEvent(new MouseEvent('mousedown', { bubbles: true }));
waitFor(60, () => {
const style = window.getComputedStyle(element);
return style.display !== 'none' && style.pointerEvents !== 'none';
}).then(() => {
setVisible(_visible);
});
} else {
setVisible(_visible);
} }
} }
if (!initialized) {
const self = window.document.getElementsByClassName(`cvat-${popoverType}-popover`)[0];
self?.addEventListener('animationend', callback);
setInitialized(true);
}
}} }}
/> />
); );

@ -8,6 +8,7 @@ import Modal from 'antd/lib/modal';
// eslint-disable-next-line import/no-extraneous-dependencies // eslint-disable-next-line import/no-extraneous-dependencies
import { MenuInfo } from 'rc-menu/lib/interface'; import { MenuInfo } from 'rc-menu/lib/interface';
import ExportDatasetModal from 'components/export-dataset/export-dataset-modal';
import LoadSubmenu from 'components/actions-menu/load-submenu'; import LoadSubmenu from 'components/actions-menu/load-submenu';
import { DimensionType } from '../../../reducers/interfaces'; import { DimensionType } from '../../../reducers/interfaces';
@ -176,6 +177,7 @@ export default function AnnotationMenuComponent(props: Props): JSX.Element {
<Menu.Item key={Actions.SUBMIT_REVIEW}>Submit the review</Menu.Item> <Menu.Item key={Actions.SUBMIT_REVIEW}>Submit the review</Menu.Item>
)} )}
{jobStatus === 'completed' && <Menu.Item key={Actions.RENEW_JOB}>Renew the job</Menu.Item>} {jobStatus === 'completed' && <Menu.Item key={Actions.RENEW_JOB}>Renew the job</Menu.Item>}
<ExportDatasetModal />
</Menu> </Menu>
); );
} }

@ -23,7 +23,6 @@ import CreateProjectPageComponent from 'components/create-project-page/create-pr
import ProjectPageComponent from 'components/project-page/project-page'; import ProjectPageComponent from 'components/project-page/project-page';
import TasksPageContainer from 'containers/tasks-page/tasks-page'; import TasksPageContainer from 'containers/tasks-page/tasks-page';
import LoginWithTokenComponent from 'components/login-with-token/login-with-token'; import LoginWithTokenComponent from 'components/login-with-token/login-with-token';
import ExportDatasetModal from 'components/export-dataset/export-dataset-modal';
import CreateTaskPageContainer from 'containers/create-task-page/create-task-page'; import CreateTaskPageContainer from 'containers/create-task-page/create-task-page';
import TaskPageContainer from 'containers/task-page/task-page'; import TaskPageContainer from 'containers/task-page/task-page';
import ModelsPageContainer from 'containers/models-page/models-page'; import ModelsPageContainer from 'containers/models-page/models-page';
@ -345,8 +344,6 @@ class CVATApplication extends React.PureComponent<CVATAppProps & RouteComponentP
</Switch> </Switch>
</GlobalHotKeys> </GlobalHotKeys>
{/* eslint-disable-next-line */} {/* eslint-disable-next-line */}
<ExportDatasetModal />
{/* eslint-disable-next-line */}
<a id='downloadAnchor' target='_blank' style={{ display: 'none' }} download /> <a id='downloadAnchor' target='_blank' style={{ display: 'none' }} download />
</Layout.Content> </Layout.Content>
</Layout> </Layout>

@ -92,7 +92,6 @@ function ExportDatasetModal(): JSX.Element {
onCancel={closeModal} onCancel={closeModal}
onOk={() => form.submit()} onOk={() => form.submit()}
className={`cvat-modal-export-${instanceType}`} className={`cvat-modal-export-${instanceType}`}
destroyOnClose
> >
<Form <Form
name='Export dataset' name='Export dataset'
@ -141,11 +140,7 @@ function ExportDatasetModal(): JSX.Element {
<Checkbox>Save images</Checkbox> <Checkbox>Save images</Checkbox>
</Form.Item> </Form.Item>
<Form.Item label='Custom name' name='customName'> <Form.Item label='Custom name' name='customName'>
<Input <Input placeholder='Custom name for a dataset' suffix='.zip' className='cvat-modal-export-filename-input' />
placeholder='Custom name for a dataset'
suffix='.zip'
className='cvat-modal-export-filename-input'
/>
</Form.Item> </Form.Item>
</Form> </Form>
</Modal> </Modal>

@ -212,7 +212,6 @@ function HeaderContainer(props: Props): JSX.Element {
<Menu className='cvat-header-menu' mode='vertical'> <Menu className='cvat-header-menu' mode='vertical'>
{user.isStaff && ( {user.isStaff && (
<Menu.Item <Menu.Item
key='admin_page'
onClick={(): void => { onClick={(): void => {
// false positive // false positive
// eslint-disable-next-line // eslint-disable-next-line
@ -224,21 +223,16 @@ function HeaderContainer(props: Props): JSX.Element {
</Menu.Item> </Menu.Item>
)} )}
<Menu.Item <Menu.Item title={`Press ${switchSettingsShortcut} to switch`} onClick={() => switchSettingsDialog(true)}>
key='settings'
title={`Press ${switchSettingsShortcut} to switch`}
onClick={() => switchSettingsDialog(true)}
>
<SettingOutlined /> <SettingOutlined />
Settings Settings
</Menu.Item> </Menu.Item>
<Menu.Item key='about' onClick={showAboutModal}> <Menu.Item onClick={showAboutModal}>
<InfoCircleOutlined /> <InfoCircleOutlined />
About About
</Menu.Item> </Menu.Item>
{renderChangePasswordItem && ( {renderChangePasswordItem && (
<Menu.Item <Menu.Item
key='change_password'
className='cvat-header-menu-change-password' className='cvat-header-menu-change-password'
onClick={(): void => switchChangePasswordDialog(true)} onClick={(): void => switchChangePasswordDialog(true)}
disabled={changePasswordFetching} disabled={changePasswordFetching}
@ -248,7 +242,7 @@ function HeaderContainer(props: Props): JSX.Element {
</Menu.Item> </Menu.Item>
)} )}
<Menu.Item key='logout' onClick={onLogout} disabled={logoutFetching}> <Menu.Item onClick={onLogout} disabled={logoutFetching}>
{logoutFetching ? <LoadingOutlined /> : <LogoutOutlined />} {logoutFetching ? <LoadingOutlined /> : <LogoutOutlined />}
Logout Logout
</Menu.Item> </Menu.Item>

@ -56,11 +56,3 @@
margin-left: 16px; margin-left: 16px;
margin-right: 0; margin-right: 0;
} }
.cvat-header-menu {
> li {
span[role='img'] {
margin-right: $grid-unit-size;
}
}
}

@ -53,7 +53,7 @@ export default class LabelForm extends React.Component<Props> {
name: values.name, name: values.name,
id: label ? label.id : idGenerator(), id: label ? label.id : idGenerator(),
color: values.color, color: values.color,
attributes: (values.attributes || []).map((attribute: Store) => { attributes: values.attributes.map((attribute: Store) => {
let attrValues: string | string[] = attribute.values; let attrValues: string | string[] = attribute.values;
if (!Array.isArray(attrValues)) { if (!Array.isArray(attrValues)) {
if (attribute.type === AttributeType.NUMBER) { if (attribute.type === AttributeType.NUMBER) {
@ -73,9 +73,8 @@ export default class LabelForm extends React.Component<Props> {
}); });
if (this.formRef.current) { if (this.formRef.current) {
// resetFields does not remove existed attributes
this.formRef.current.setFieldsValue({ attributes: undefined });
this.formRef.current.resetFields(); this.formRef.current.resetFields();
this.formRef.current.setFieldsValue({ attributes: [] });
} }
if (!this.continueAfterSubmit) { if (!this.continueAfterSubmit) {
@ -86,7 +85,7 @@ export default class LabelForm extends React.Component<Props> {
private addAttribute = (): void => { private addAttribute = (): void => {
if (this.formRef.current) { if (this.formRef.current) {
const attributes = this.formRef.current.getFieldValue('attributes'); const attributes = this.formRef.current.getFieldValue('attributes');
this.formRef.current.setFieldsValue({ attributes: [...(attributes || []), { id: idGenerator() }] }); this.formRef.current.setFieldsValue({ attributes: [...attributes, { id: idGenerator() }] });
} }
}; };
@ -160,11 +159,11 @@ export default class LabelForm extends React.Component<Props> {
private renderAttributeValuesInput(fieldInstance: any, attr: Attribute | null): JSX.Element { private renderAttributeValuesInput(fieldInstance: any, attr: Attribute | null): JSX.Element {
const { key } = fieldInstance; const { key } = fieldInstance;
const locked = attr ? attr.id >= 0 : false; const locked = attr ? attr.id >= 0 : false;
const existingValues = attr ? attr.values : []; const existedValues = attr ? attr.values : [];
const validator = (_: any, values: string[]): Promise<void> => { const validator = (_: any, values: string[]): Promise<void> => {
if (locked && existingValues) { if (locked && existedValues) {
if (!equalArrayHead(existingValues, values)) { if (!equalArrayHead(existedValues, values)) {
return Promise.reject(new Error('You can only append new values')); return Promise.reject(new Error('You can only append new values'));
} }
} }
@ -183,7 +182,7 @@ export default class LabelForm extends React.Component<Props> {
<Form.Item <Form.Item
name={[key, 'values']} name={[key, 'values']}
fieldKey={[fieldInstance.fieldKey, 'values']} fieldKey={[fieldInstance.fieldKey, 'values']}
initialValue={existingValues} initialValue={existedValues}
rules={[ rules={[
{ {
required: true, required: true,
@ -503,15 +502,19 @@ export default class LabelForm extends React.Component<Props> {
// eslint-disable-next-line react/sort-comp // eslint-disable-next-line react/sort-comp
public componentDidMount(): void { public componentDidMount(): void {
const { label } = this.props; const { label } = this.props;
if (this.formRef.current && label && label.attributes.length) { if (this.formRef.current) {
const convertedAttributes = label.attributes.map( const convertedAttributes = label ?
(attribute: Attribute): Store => ({ label.attributes.map(
...attribute, (attribute: Attribute): Store => ({
values: ...attribute,
attribute.input_type.toUpperCase() === 'NUMBER' ? attribute.values.join(';') : attribute.values, values:
type: attribute.input_type.toUpperCase(), attribute.input_type.toUpperCase() === 'NUMBER' ?
}), attribute.values.join(';') :
); attribute.values,
type: attribute.input_type.toUpperCase(),
}),
) :
[];
for (const attr of convertedAttributes) { for (const attr of convertedAttributes) {
delete attr.input_type; delete attr.input_type;

@ -16,6 +16,7 @@ import { PlusOutlined } from '@ant-design/icons';
import { CombinedState, Task } from 'reducers/interfaces'; import { CombinedState, Task } from 'reducers/interfaces';
import { getProjectsAsync } from 'actions/projects-actions'; import { getProjectsAsync } from 'actions/projects-actions';
import { cancelInferenceAsync } from 'actions/models-actions'; import { cancelInferenceAsync } from 'actions/models-actions';
import ExportDatasetModal from 'components/export-dataset/export-dataset-modal';
import TaskItem from 'components/tasks-page/task-item'; import TaskItem from 'components/tasks-page/task-item';
import MoveTaskModal from 'components/move-task-modal/move-task-modal'; import MoveTaskModal from 'components/move-task-modal/move-task-modal';
import ModelRunnerDialog from 'components/model-runner-modal/model-runner-dialog'; import ModelRunnerDialog from 'components/model-runner-modal/model-runner-dialog';
@ -111,6 +112,7 @@ export default function ProjectPageComponent(): JSX.Element {
</React.Fragment> </React.Fragment>
))} ))}
</Col> </Col>
<ExportDatasetModal />
<MoveTaskModal /> <MoveTaskModal />
<ModelRunnerDialog /> <ModelRunnerDialog />
</Row> </Row>

@ -11,6 +11,7 @@ import Spin from 'antd/lib/spin';
import { CombinedState, ProjectsQuery } from 'reducers/interfaces'; import { CombinedState, ProjectsQuery } from 'reducers/interfaces';
import { getProjectsAsync } from 'actions/projects-actions'; import { getProjectsAsync } from 'actions/projects-actions';
import FeedbackComponent from 'components/feedback/feedback'; import FeedbackComponent from 'components/feedback/feedback';
import ExportDatasetModal from 'components/export-dataset/export-dataset-modal';
import EmptyListComponent from './empty-list'; import EmptyListComponent from './empty-list';
import TopBarComponent from './top-bar'; import TopBarComponent from './top-bar';
import ProjectListComponent from './project-list'; import ProjectListComponent from './project-list';
@ -55,6 +56,7 @@ export default function ProjectsPageComponent(): JSX.Element {
<TopBarComponent /> <TopBarComponent />
{projectsCount ? <ProjectListComponent /> : <EmptyListComponent notFound={anySearchQuery} />} {projectsCount ? <ProjectListComponent /> : <EmptyListComponent notFound={anySearchQuery} />}
<FeedbackComponent /> <FeedbackComponent />
<ExportDatasetModal />
</div> </div>
); );
} }

@ -14,6 +14,7 @@ import DetailsContainer from 'containers/task-page/details';
import JobListContainer from 'containers/task-page/job-list'; import JobListContainer from 'containers/task-page/job-list';
import ModelRunnerModal from 'components/model-runner-modal/model-runner-dialog'; import ModelRunnerModal from 'components/model-runner-modal/model-runner-dialog';
import MoveTaskModal from 'components/move-task-modal/move-task-modal'; import MoveTaskModal from 'components/move-task-modal/move-task-modal';
import ExportDatasetModal from 'components/export-dataset/export-dataset-modal';
import { Task } from 'reducers/interfaces'; import { Task } from 'reducers/interfaces';
import TopBarComponent from './top-bar'; import TopBarComponent from './top-bar';
@ -85,6 +86,7 @@ class TaskPageComponent extends React.PureComponent<Props> {
</Row> </Row>
<ModelRunnerModal /> <ModelRunnerModal />
<MoveTaskModal /> <MoveTaskModal />
<ExportDatasetModal />
{updating && <Spin size='large' className='cvat-spinner' />} {updating && <Spin size='large' className='cvat-spinner' />}
</> </>
); );

@ -14,6 +14,7 @@ import Text from 'antd/lib/typography/Text';
import { TasksQuery } from 'reducers/interfaces'; import { TasksQuery } from 'reducers/interfaces';
import FeedbackComponent from 'components/feedback/feedback'; import FeedbackComponent from 'components/feedback/feedback';
import TaskListContainer from 'containers/tasks-page/tasks-list'; import TaskListContainer from 'containers/tasks-page/tasks-list';
import ExportDatasetModal from 'components/export-dataset/export-dataset-modal';
import TopBar from './top-bar'; import TopBar from './top-bar';
import EmptyListComponent from './empty-list'; import EmptyListComponent from './empty-list';
@ -221,6 +222,7 @@ class TasksPageComponent extends React.PureComponent<TasksPageProps & RouteCompo
<EmptyListComponent /> <EmptyListComponent />
)} )}
<FeedbackComponent /> <FeedbackComponent />
<ExportDatasetModal />
</div> </div>
); );
} }

@ -31,7 +31,6 @@ module.exports = (env) => ({
host: process.env.CVAT_UI_HOST || 'localhost', host: process.env.CVAT_UI_HOST || 'localhost',
port: 3000, port: 3000,
historyApiFallback: true, historyApiFallback: true,
host: process.env.CVAT_UI_HOST || 'localhost',
proxy: [ proxy: [
{ {
context: (param) => context: (param) =>

@ -76,7 +76,7 @@ context('Autoborder feature.', () => {
testActivatingShape(650, 400, '#cvat_canvas_shape_2'); testActivatingShape(650, 400, '#cvat_canvas_shape_2');
testCollectCxCircleCoord(rectangleSvgJsCircleIdSecond); testCollectCxCircleCoord(rectangleSvgJsCircleIdSecond);
cy.interactControlButton('draw-polygon'); cy.get('.cvat-draw-polygon-control').click();
cy.get('.cvat-draw-polygon-popover-visible').find('[type="button"]').contains('Shape').click(); cy.get('.cvat-draw-polygon-popover-visible').find('[type="button"]').contains('Shape').click();
cy.get('body').type('{Ctrl}'); // Autoborder activation cy.get('body').type('{Ctrl}'); // Autoborder activation
testAutoborderPointsCount(8); // 8 points at the rectangles testAutoborderPointsCount(8); // 8 points at the rectangles
@ -90,7 +90,7 @@ context('Autoborder feature.', () => {
}); });
it('Start drawing a polyline with autobordering between the two shapes.', () => { it('Start drawing a polyline with autobordering between the two shapes.', () => {
cy.interactControlButton('draw-polyline'); cy.get('.cvat-draw-polyline-control').click();
cy.get('.cvat-draw-polyline-popover-visible').find('[type="button"]').contains('Shape').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 testAutoborderPointsCount(12); // 8 points at the rectangles + 4 at the polygon
cy.get('.cvat-canvas-container') // Drawning cy.get('.cvat-canvas-container') // Drawning

@ -62,7 +62,6 @@ context('Filters, sorting jobs.', () => {
cy.get(column).find('[role="button"]').click().wait(300); // Waiting for dropdown menu transition cy.get(column).find('[role="button"]').click().wait(300); // Waiting for dropdown menu transition
cy.get('.ant-dropdown') cy.get('.ant-dropdown')
.not('.ant-dropdown-hidden') .not('.ant-dropdown-hidden')
.should('not.have.attr', 'style', 'poiner-events')
.within(() => { .within(() => {
if (!reset) { if (!reset) {
cy.contains('[role="menuitem"]', menuItem) cy.contains('[role="menuitem"]', menuItem)

@ -40,6 +40,11 @@ context('OpenCV. Intelligent scissors. Histogram Equalization.', () => {
{ x: 400, y: 550 }, { x: 400, y: 550 },
]; ];
function openOpencvControlPopover() {
cy.get('body').focus();
cy.get('.cvat-tools-control').trigger('mouseleave').trigger('mouseout').trigger('mouseover');
}
before(() => { before(() => {
cy.openTask(taskName); cy.openTask(taskName);
cy.addNewLabel(newLabel); cy.addNewLabel(newLabel);
@ -48,7 +53,7 @@ context('OpenCV. Intelligent scissors. Histogram Equalization.', () => {
describe(`Testing case "${caseId}"`, () => { describe(`Testing case "${caseId}"`, () => {
it('Load OpenCV.', () => { it('Load OpenCV.', () => {
cy.interactOpenCVControlButton(); openOpencvControlPopover();
cy.get('.cvat-opencv-control-popover-visible').find('.cvat-opencv-initialization-button').click(); cy.get('.cvat-opencv-control-popover-visible').find('.cvat-opencv-initialization-button').click();
// Intelligent cissors button be visible // Intelligent cissors button be visible
cy.get('.cvat-opencv-drawing-tool').should('exist').and('be.visible'); cy.get('.cvat-opencv-drawing-tool').should('exist').and('be.visible');
@ -60,7 +65,7 @@ context('OpenCV. Intelligent scissors. Histogram Equalization.', () => {
}); });
it('Change the number of points when the shape is drawn. Cancel drawing.', () => { it('Change the number of points when the shape is drawn. Cancel drawing.', () => {
cy.interactOpenCVControlButton(); openOpencvControlPopover();
cy.get('.cvat-opencv-drawing-tool').click(); cy.get('.cvat-opencv-drawing-tool').click();
pointsMap.forEach((element) => { pointsMap.forEach((element) => {
cy.get('.cvat-canvas-container').click(element.x, element.y); cy.get('.cvat-canvas-container').click(element.x, element.y);
@ -103,7 +108,7 @@ context('OpenCV. Intelligent scissors. Histogram Equalization.', () => {
}); });
it('Check "Intelligent scissors blocking feature". Cancel drawing.', () => { it('Check "Intelligent scissors blocking feature". Cancel drawing.', () => {
cy.interactOpenCVControlButton(); openOpencvControlPopover();
cy.get('.cvat-opencv-drawing-tool').click(); cy.get('.cvat-opencv-drawing-tool').click();
cy.contains('span', 'Block').click(); cy.contains('span', 'Block').click();
cy.get('.cvat_canvas_threshold').should('not.exist'); cy.get('.cvat_canvas_threshold').should('not.exist');
@ -122,18 +127,11 @@ context('OpenCV. Intelligent scissors. Histogram Equalization.', () => {
}); });
it('Check "Histogram Equalization" feature.', () => { it('Check "Histogram Equalization" feature.', () => {
cy.checkPopoverHidden('opencv-control'); openOpencvControlPopover();
cy.interactOpenCVControlButton(); cy.get('.cvat-opencv-control-popover-visible').contains('[role="tab"]', 'Image').click();
cy.get('.cvat-opencv-control-popover-visible') cy.get('.cvat-opencv-image-tool').click().should('have.class', 'cvat-opencv-image-tool-active').trigger('mouseout');
.contains('[role="tab"]', 'Image')
.click()
.parents('.ant-tabs-tab')
.should('have.class', 'ant-tabs-tab-active');
cy.get('.cvat-opencv-image-tool').click();
cy.get('.cvat-opencv-image-tool').should('have.class', 'cvat-opencv-image-tool-active');
cy.get('.cvat-notification-notice-opencv-processing-error').should('not.exist'); cy.get('.cvat-notification-notice-opencv-processing-error').should('not.exist');
cy.get('.cvat-opencv-image-tool').click(); cy.get('.cvat-opencv-image-tool').click().should('not.have.class', 'cvat-opencv-image-tool-active').trigger('mouseout');
cy.get('.cvat-opencv-image-tool').should('not.have.class', 'cvat-opencv-image-tool-active');
}); });
// Waiting for fix https://github.com/openvinotoolkit/cvat/issues/3474 // Waiting for fix https://github.com/openvinotoolkit/cvat/issues/3474

@ -146,9 +146,6 @@ context('Label constructor. Color label. Label name editing', () => {
cy.get('.cvat-change-task-label-color-button').click(); cy.get('.cvat-change-task-label-color-button').click();
cy.get('.cvat-label-color-picker') cy.get('.cvat-label-color-picker')
.not('.ant-popover-hidden') .not('.ant-popover-hidden')
.should('have.attr', 'style')
.and('not.include', 'pointer-events');
cy.get('.cvat-label-color-picker')
.within(() => { .within(() => {
cy.contains('hex').prev().clear().type(labelColor.yellowHex); cy.contains('hex').prev().clear().type(labelColor.yellowHex);
cy.contains('button', 'Cancel').click(); cy.contains('button', 'Cancel').click();

@ -10,7 +10,8 @@ context('Check if the image is rotated', () => {
const caseId = '5'; const caseId = '5';
function imageRotate(direction = 'anticlockwise') { function imageRotate(direction = 'anticlockwise') {
cy.interactControlButton('rotate-canvas'); cy.get('.cvat-rotate-canvas-control').trigger('mouseover');
cy.get('.cvat-rotate-canvas-popover-visible').should('exist');
if (direction === 'clockwise') { if (direction === 'clockwise') {
cy.get('.cvat-rotate-canvas-controls-right').click(); cy.get('.cvat-rotate-canvas-controls-right').click();
} else { } else {
@ -34,6 +35,7 @@ context('Check if the image is rotated', () => {
scaleAfter = Number($styles.match(/scale\((\d\.\d+)\)/m)[1]); scaleAfter = Number($styles.match(/scale\((\d\.\d+)\)/m)[1]);
cy.expect(scaleBefore).to.be.greaterThan(scaleAfter); cy.expect(scaleBefore).to.be.greaterThan(scaleAfter);
cy.get('#cvat_canvas_content').dblclick(); cy.get('#cvat_canvas_content').dblclick();
cy.get('.cvat-rotate-canvas-popover-visible').should('not.exist');
cy.get('#cvat_canvas_background').should('have.attr', 'style').and('contain', scaleBefore); cy.get('#cvat_canvas_background').should('have.attr', 'style').and('contain', scaleBefore);
}); });
} }

@ -268,7 +268,7 @@ context('Review pipeline feature', () => {
.should('exist') .should('exist')
.trigger('mousemove') .trigger('mousemove')
.trigger('mouseover'); .trigger('mouseover');
cy.get('.cvat-quick-issue-from-latest-item').within(() => { cy.get('[id="quick_issue_from_latest$Menu"]').within(() => {
cy.contains('.cvat-context-menu-item', new RegExp(`^${customeIssueDescription}$`, 'g')) cy.contains('.cvat-context-menu-item', new RegExp(`^${customeIssueDescription}$`, 'g'))
.should('exist') .should('exist')
.and('have.text', customeIssueDescription); .and('have.text', customeIssueDescription);

@ -9,7 +9,7 @@ import { taskName, labelName } from '../../support/const_canvas3d';
context('Canvas 3D functionality. Cancel drawing.', () => { context('Canvas 3D functionality. Cancel drawing.', () => {
const caseId = '85'; const caseId = '85';
const screenshotsPath = const screenshotsPath =
'cypress/screenshots/canvas3d_functionality/case_85_canvas3d_functionality_cuboid_cancel_drawing.js'; 'cypress/screenshots/canvas3d_functionality/case_85_canvas3d_functionality_cuboid_сancel_drawing.js';
before(() => { before(() => {
cy.openTask(taskName); cy.openTask(taskName);
@ -19,8 +19,8 @@ context('Canvas 3D functionality. Cancel drawing.', () => {
describe(`Testing case "${caseId}"`, () => { describe(`Testing case "${caseId}"`, () => {
it('Cancel drawing.', () => { it('Cancel drawing.', () => {
cy.interactControlButton('draw-cuboid'); cy.get('.cvat-draw-cuboid-control').trigger('mouseover');
cy.get('.cvat-draw-cuboid-popover-visible').find('.ant-select-selection-item').click(); cy.get('.cvat-draw-cuboid-popover-visible').find('[type="search"]').click({ force: true });
cy.get('.ant-select-dropdown') cy.get('.ant-select-dropdown')
.not('.ant-select-dropdown-hidden') .not('.ant-select-dropdown-hidden')
.within(() => { .within(() => {

@ -57,7 +57,8 @@ context('Canvas 3D functionality. Interaction with cuboid via sidebar.', () => {
it('Change a label via sidear.', () => { it('Change a label via sidear.', () => {
cy.get('#cvat-objects-sidebar-state-item-1') cy.get('#cvat-objects-sidebar-state-item-1')
.find('.cvat-objects-sidebar-state-item-label-selector') .find('.cvat-objects-sidebar-state-item-label-selector')
.type(`${secondLabel}{Enter}`); .type(`${secondLabel}{Enter}`)
.trigger('mouseout');
cy.get('.cvat-canvas3d-perspective').screenshot('canvas3d_perspective_after_change_label_cuboid'); cy.get('.cvat-canvas3d-perspective').screenshot('canvas3d_perspective_after_change_label_cuboid');
cy.compareImagesAndCheckResult( cy.compareImagesAndCheckResult(
`${screenshotsPath}/canvas3d_perspective_after_activating_cuboid.png`, `${screenshotsPath}/canvas3d_perspective_after_activating_cuboid.png`,
@ -80,8 +81,8 @@ context('Canvas 3D functionality. Interaction with cuboid via sidebar.', () => {
it('Lock/unlock a cuboid via sidear. The control points of the cuboid on the top/side/front view are locked/unlocked.', () => { it('Lock/unlock a cuboid via sidear. The control points of the cuboid on the top/side/front view are locked/unlocked.', () => {
cy.get('#cvat-objects-sidebar-state-item-1') cy.get('#cvat-objects-sidebar-state-item-1')
.find('.cvat-object-item-button-lock') .find('.cvat-object-item-button-lock')
.click({force: true}); // Lock the cubiod .click(); // Lock the cubiod
cy.get('.cvat-object-item-button-lock-enabled').should('exist'); cy.get('.cvat-object-item-button-lock-enabled').should('exist').trigger('mouseout');
['topview', 'sideview', 'frontview'].forEach((view) => { ['topview', 'sideview', 'frontview'].forEach((view) => {
cy.get(`.cvat-canvas3d-${view}`) cy.get(`.cvat-canvas3d-${view}`)
.find('.cvat-canvas3d-fullsize') .find('.cvat-canvas3d-fullsize')

@ -17,7 +17,7 @@ context('Check maintenance of popups visibility.', () => {
it('Open a popover for draw an object and apply the "mouseout" event to it. The popover be visible.', () => { it('Open a popover for draw an object and apply the "mouseout" event to it. The popover be visible.', () => {
cy.interactControlButton('draw-rectangle'); cy.interactControlButton('draw-rectangle');
cy.get('.cvat-draw-rectangle-popover-visible').trigger('mouseout').wait(500); cy.get('.cvat-draw-rectangle-popover-visible').trigger('mouseout').wait(500);
cy.get('.cvat-draw-rectangle-popover-visible').should('be.visible'); cy.get('.cvat-draw-rectangle-popover-visible').should('exist');
}); });
it('Click to another element. The popover hidden.', () => { it('Click to another element. The popover hidden.', () => {

@ -51,7 +51,7 @@ context('Call HOC component each render.', () => {
}; };
function checkNumberOfPointsValue(objectType, numberOfPoints) { function checkNumberOfPointsValue(objectType, numberOfPoints) {
cy.interactControlButton(`draw-${objectType}`); cy.get(`.cvat-draw-${objectType}-control`).trigger('mouseover');
cy.get(`.cvat-draw-${objectType}-popover-visible`).within(() => { cy.get(`.cvat-draw-${objectType}-popover-visible`).within(() => {
cy.get('.cvat-draw-shape-popover-points-selector') cy.get('.cvat-draw-shape-popover-points-selector')
.find('input') .find('input')

@ -242,10 +242,7 @@ Cypress.Commands.add('openTaskJob', (taskName, jobID = 0, removeAnnotations = tr
Cypress.Commands.add('interactControlButton', (objectType) => { Cypress.Commands.add('interactControlButton', (objectType) => {
cy.get('body').focus(); cy.get('body').focus();
cy.get(`.cvat-${objectType}-control`).trigger('mouseleave').trigger('mouseout').trigger('mousemove').trigger('mouseover'); cy.get(`.cvat-${objectType}-control`).trigger('mouseleave').trigger('mouseout').trigger('mouseover');
cy.get(`.cvat-${objectType}-popover-visible`).should('exist');
cy.get(`.cvat-${objectType}-popover-visible`).should('be.visible');
cy.get(`.cvat-${objectType}-popover-visible`).should('have.attr', 'style').and('not.include', 'pointer-events: none');
}); });
Cypress.Commands.add('createRectangle', (createRectangleParams) => { Cypress.Commands.add('createRectangle', (createRectangleParams) => {
@ -266,27 +263,19 @@ Cypress.Commands.add('createRectangle', (createRectangleParams) => {
.click(createRectangleParams.thirdX, createRectangleParams.thirdY) .click(createRectangleParams.thirdX, createRectangleParams.thirdY)
.click(createRectangleParams.fourthX, createRectangleParams.fourthY); .click(createRectangleParams.fourthX, createRectangleParams.fourthY);
} }
cy.checkPopoverHidden('draw-rectangle');
cy.checkObjectParameters(createRectangleParams, 'RECTANGLE'); cy.checkObjectParameters(createRectangleParams, 'RECTANGLE');
}); });
Cypress.Commands.add('switchLabel', (labelName, objectType) => { Cypress.Commands.add('switchLabel', (labelName, objectType) => {
cy.get(`.cvat-${objectType}-popover-visible`) cy.get(`.cvat-${objectType}-popover-visible`).find('.ant-select-selection-item').click();
.find('.ant-select-selection-item')
.click();
cy.get('.ant-select-dropdown') cy.get('.ant-select-dropdown')
.not('.ant-select-dropdown-hidden') .not('.ant-select-dropdown-hidden')
.find(`.ant-select-item-option[title="${labelName}"]`) .find(`.ant-select-item-option[title="${labelName}"]`)
.click(); .click();
}); });
Cypress.Commands.add('checkPopoverHidden', (objectType) => {
cy.get(`.cvat-${objectType}-popover-visible`).should('not.exist');
cy.get(`.cvat-${objectType}-popover`).should('be.hidden');
cy.get(`.cvat-${objectType}-popover`).should('have.attr', 'style').and('include', 'pointer-events: none');
});
Cypress.Commands.add('checkObjectParameters', (objectParameters, objectType) => { Cypress.Commands.add('checkObjectParameters', (objectParameters, objectType) => {
cy.get('.cvat-draw-shape-popover').should('be.hidden');
let listCanvasShapeId = []; let listCanvasShapeId = [];
cy.document().then((doc) => { cy.document().then((doc) => {
const listCanvasShape = Array.from(doc.querySelectorAll('.cvat_canvas_shape')); const listCanvasShape = Array.from(doc.querySelectorAll('.cvat_canvas_shape'));
@ -294,7 +283,7 @@ Cypress.Commands.add('checkObjectParameters', (objectParameters, objectType) =>
listCanvasShapeId.push(listCanvasShape[i].id.match(/\d+$/)); listCanvasShapeId.push(listCanvasShape[i].id.match(/\d+$/));
} }
const maxId = Math.max(...listCanvasShapeId); const maxId = Math.max(...listCanvasShapeId);
cy.get(`#cvat_canvas_shape_${maxId}`).should('be.visible'); cy.get(`#cvat_canvas_shape_${maxId}`).should('exist').and('be.visible');
cy.get(`#cvat-objects-sidebar-state-item-${maxId}`) cy.get(`#cvat-objects-sidebar-state-item-${maxId}`)
.should('contain', maxId) .should('contain', maxId)
.and('contain', `${objectType} ${objectParameters.type.toUpperCase()}`) .and('contain', `${objectType} ${objectParameters.type.toUpperCase()}`)
@ -329,7 +318,6 @@ Cypress.Commands.add('createPoint', (createPointParams) => {
.trigger('keyup', { keyCode: keyCodeN }); .trigger('keyup', { keyCode: keyCodeN });
} }
} }
cy.checkPopoverHidden('draw-points');
cy.checkObjectParameters(createPointParams, 'POINTS'); cy.checkObjectParameters(createPointParams, 'POINTS');
}); });
@ -378,7 +366,6 @@ Cypress.Commands.add('createPolygon', (createPolygonParams) => {
.trigger('keyup', { keyCode: keyCodeN }); .trigger('keyup', { keyCode: keyCodeN });
} }
} }
cy.checkPopoverHidden('draw-polygon');
cy.checkObjectParameters(createPolygonParams, 'POLYGON'); cy.checkObjectParameters(createPolygonParams, 'POLYGON');
}); });
@ -442,7 +429,6 @@ Cypress.Commands.add('createCuboid', (createCuboidParams) => {
cy.get('.cvat-canvas-container').click(createCuboidParams.thirdX, createCuboidParams.thirdY); cy.get('.cvat-canvas-container').click(createCuboidParams.thirdX, createCuboidParams.thirdY);
cy.get('.cvat-canvas-container').click(createCuboidParams.fourthX, createCuboidParams.fourthY); cy.get('.cvat-canvas-container').click(createCuboidParams.fourthX, createCuboidParams.fourthY);
} }
cy.checkPopoverHidden('draw-cuboid');
cy.checkObjectParameters(createCuboidParams, 'CUBOID'); cy.checkObjectParameters(createCuboidParams, 'CUBOID');
}); });
@ -524,7 +510,6 @@ Cypress.Commands.add('createPolyline', (createPolylineParams) => {
.trigger('keyup', { keyCode: keyCodeN }); .trigger('keyup', { keyCode: keyCodeN });
} }
} }
cy.checkPopoverHidden('draw-polyline');
cy.checkObjectParameters(createPolylineParams, 'POLYLINE'); cy.checkObjectParameters(createPolylineParams, 'POLYLINE');
}); });
@ -733,8 +718,8 @@ Cypress.Commands.add('closeModalUnsupportedPlatform', () => {
Cypress.Commands.add('exportTask', ({ as, type, format, archiveCustomeName }) => { Cypress.Commands.add('exportTask', ({ as, type, format, archiveCustomeName }) => {
cy.interactMenu('Export task dataset'); cy.interactMenu('Export task dataset');
cy.intercept('GET', `/api/v1/tasks/**/${type}**`).as(as); cy.intercept('GET', `/api/v1/tasks/**/${type}**`).as(as);
cy.get('.cvat-modal-export-task').should('be.visible').find('.cvat-modal-export-select').click(); cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click();
cy.contains('.cvat-modal-export-option-item', format).should('be.visible').click(); cy.contains('.cvat-modal-export-option-item', format).click();
cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').should('contain.text', format); cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').should('contain.text', format);
if (type === 'dataset') { if (type === 'dataset') {
cy.get('.cvat-modal-export-task').find('[type="checkbox"]').should('not.be.checked').check(); cy.get('.cvat-modal-export-task').find('[type="checkbox"]').should('not.be.checked').check();

@ -11,13 +11,16 @@ Cypress.Commands.add('compareImagesAndCheckResult', (baseImage, afterImage, noCh
}); });
Cypress.Commands.add('create3DCuboid', (cuboidCreationParams) => { Cypress.Commands.add('create3DCuboid', (cuboidCreationParams) => {
cy.interactControlButton('draw-cuboid'); cy.get('.cvat-draw-cuboid-control').trigger('mouseover');
cy.switchLabel(cuboidCreationParams.labelName, 'draw-cuboid'); cy.get('.cvat-draw-cuboid-popover-visible').find('[type="search"]').click({ force: true });
cy.get('.ant-select-dropdown')
.not('.ant-select-dropdown-hidden')
.within(() => {
cy.contains(new RegExp(`^${cuboidCreationParams.labelName}$`)).click();
});
cy.get('.cvat-draw-cuboid-popover-visible').find('button').click(); cy.get('.cvat-draw-cuboid-popover-visible').find('button').click();
cy.get('.cvat-canvas3d-perspective') cy.get('.cvat-canvas3d-perspective')
.trigger('mousemove', cuboidCreationParams.x, cuboidCreationParams.y) .trigger('mousemove', cuboidCreationParams.x, cuboidCreationParams.y)
.dblclick(cuboidCreationParams.x, cuboidCreationParams.y); .dblclick(cuboidCreationParams.x, cuboidCreationParams.y);
cy.wait(1000); // Waiting for a cuboid creation cy.wait(1000); // Waiting for a cuboid creation
cy.get('.cvat-draw-cuboid-popover-visible').should('not.exist');
cy.get('.cvat-draw-cuboid-popover').should('be.hidden');
}); });

@ -6,18 +6,10 @@
let selectedValueGlobal = ''; let selectedValueGlobal = '';
Cypress.Commands.add('interactOpenCVControlButton', () => {
cy.get('body').focus();
cy.get('.cvat-tools-control').trigger('mouseleave').trigger('mouseout').trigger('mousemove').trigger('mouseover');
cy.get('.cvat-tools-control').should('have.class', 'ant-popover-open');
cy.get('.cvat-opencv-control-popover-visible').should('exist');
cy.get('.cvat-opencv-control-popover-visible').should('be.visible');
cy.get('.cvat-opencv-control-popover-visible').should('have.attr', 'style').and('not.include', 'pointer-events');
});
Cypress.Commands.add('opencvCreateShape', (opencvShapeParams) => { Cypress.Commands.add('opencvCreateShape', (opencvShapeParams) => {
if (!opencvShapeParams.reDraw) { if (!opencvShapeParams.reDraw) {
cy.interactOpenCVControlButton(); cy.get('body').focus();
cy.get('.cvat-tools-control').trigger('mouseleave').trigger('mouseout').trigger('mouseover');
cy.switchLabel(opencvShapeParams.labelName, 'opencv-control'); cy.switchLabel(opencvShapeParams.labelName, 'opencv-control');
cy.get('.cvat-opencv-control-popover-visible').within(() => { cy.get('.cvat-opencv-control-popover-visible').within(() => {
cy.get('.ant-select-selection-item').then(($labelValue) => { cy.get('.ant-select-selection-item').then(($labelValue) => {
@ -37,11 +29,10 @@ Cypress.Commands.add('opencvCreateShape', (opencvShapeParams) => {
.trigger('keydown', { keyCode: keyCodeN }) .trigger('keydown', { keyCode: keyCodeN })
.trigger('keyup', { keyCode: keyCodeN }); .trigger('keyup', { keyCode: keyCodeN });
} }
cy.checkPopoverHidden('opencv-control'); cy.opncvCheckObjectParameters('POLYGON');
cy.opencvCheckObjectParameters('POLYGON');
}); });
Cypress.Commands.add('opencvCheckObjectParameters', (objectType) => { Cypress.Commands.add('opncvCheckObjectParameters', (objectType) => {
let listCanvasShapeId = []; let listCanvasShapeId = [];
cy.document().then((doc) => { cy.document().then((doc) => {
const listCanvasShape = Array.from(doc.querySelectorAll('.cvat_canvas_shape')); const listCanvasShape = Array.from(doc.querySelectorAll('.cvat_canvas_shape'));

@ -71,8 +71,8 @@ Cypress.Commands.add('exportProject', ({ projectName, as, type, dumpType, archiv
cy.projectActions(projectName); cy.projectActions(projectName);
cy.intercept('GET', `/api/v1/projects/**/${type}**`).as(as); cy.intercept('GET', `/api/v1/projects/**/${type}**`).as(as);
cy.get('.cvat-project-actions-menu').contains('Export project dataset').click(); cy.get('.cvat-project-actions-menu').contains('Export project dataset').click();
cy.get('.cvat-modal-export-project').should('be.visible').find('.cvat-modal-export-select').click(); cy.get('.cvat-modal-export-project').find('.cvat-modal-export-select').click();
cy.contains('.cvat-modal-export-option-item', dumpType).should('be.visible').click(); cy.contains('.cvat-modal-export-option-item', dumpType).click();
cy.get('.cvat-modal-export-select').should('contain.text', dumpType); cy.get('.cvat-modal-export-select').should('contain.text', dumpType);
if (type === 'dataset') { if (type === 'dataset') {
cy.get('.cvat-modal-export-project').find('[type="checkbox"]').should('not.be.checked').check(); cy.get('.cvat-modal-export-project').find('[type="checkbox"]').should('not.be.checked').check();

@ -110,7 +110,7 @@ Cypress.Commands.add('createIssueFromObject', (object, issueType, customeIssueDe
cy.get('[type="submit"]').click(); cy.get('[type="submit"]').click();
}); });
} else if (issueType === 'Quick issue ...') { } else if (issueType === 'Quick issue ...') {
cy.get('.cvat-quick-issue-from-latest-item') cy.get('[id="quick_issue_from_latest$Menu"]')
.should('be.visible') .should('be.visible')
.contains('.cvat-context-menu-item', new RegExp(`^${customeIssueDescription}$`, 'g')) .contains('.cvat-context-menu-item', new RegExp(`^${customeIssueDescription}$`, 'g'))
.click(); .click();

Loading…
Cancel
Save