From 345c62dcee71e2bc20113cb3229c73fb04db670d Mon Sep 17 00:00:00 2001 From: Jorge Miranda Date: Wed, 25 Sep 2024 19:16:50 +0200 Subject: [PATCH 1/5] Refactor IsdropImage --- package-lock.json | 176 ++++++++++++++-------------- src/pods/canvas/canvas.util.spec.ts | 3 + src/pods/canvas/canvas.util.ts | 8 ++ 3 files changed, 101 insertions(+), 86 deletions(-) create mode 100644 src/pods/canvas/canvas.util.spec.ts diff --git a/package-lock.json b/package-lock.json index e14cb219..8dd7831f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1164,9 +1164,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", "cpu": [ "arm" ], @@ -1177,9 +1177,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", "cpu": [ "arm64" ], @@ -1190,9 +1190,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", "cpu": [ "arm64" ], @@ -1203,9 +1203,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", "cpu": [ "x64" ], @@ -1216,9 +1216,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", "cpu": [ "arm" ], @@ -1229,9 +1229,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", "cpu": [ "arm" ], @@ -1242,9 +1242,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", "cpu": [ "arm64" ], @@ -1255,9 +1255,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", "cpu": [ "arm64" ], @@ -1268,9 +1268,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", "cpu": [ "ppc64" ], @@ -1281,9 +1281,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", "cpu": [ "riscv64" ], @@ -1294,9 +1294,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", "cpu": [ "s390x" ], @@ -1307,9 +1307,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", "cpu": [ "x64" ], @@ -1320,9 +1320,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", "cpu": [ "x64" ], @@ -1333,9 +1333,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", "cpu": [ "arm64" ], @@ -1346,9 +1346,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", "cpu": [ "ia32" ], @@ -1359,9 +1359,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", "cpu": [ "x64" ], @@ -4076,9 +4076,9 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { "braces": "^3.0.3", @@ -4364,9 +4364,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "dev": true }, "node_modules/picomatch": { @@ -4405,9 +4405,9 @@ } }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -4425,8 +4425,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -4736,9 +4736,9 @@ } }, "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -4751,22 +4751,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", "fsevents": "~2.3.2" } }, @@ -4914,9 +4914,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5335,14 +5335,14 @@ } }, "node_modules/vite": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", - "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -5361,6 +5361,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -5378,6 +5379,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, diff --git a/src/pods/canvas/canvas.util.spec.ts b/src/pods/canvas/canvas.util.spec.ts new file mode 100644 index 00000000..5b51d877 --- /dev/null +++ b/src/pods/canvas/canvas.util.spec.ts @@ -0,0 +1,3 @@ +describe('', () => { + it('should return True when there is an image in the event'); +}); diff --git a/src/pods/canvas/canvas.util.ts b/src/pods/canvas/canvas.util.ts index 90b70670..46d7c5aa 100644 --- a/src/pods/canvas/canvas.util.ts +++ b/src/pods/canvas/canvas.util.ts @@ -89,3 +89,11 @@ export const getScrollFromDiv = ( return { scrollLeft, scrollTop }; }; + +export const isDropImageFile = (e: React.DragEvent) => { + return ( + e.dataTransfer.items.length > 0 && + e.dataTransfer.items[0].kind === 'file' && + e.dataTransfer.items[0].type.startsWith('image/') + ); +}; From bb88006c54e6af7e6cfb2d3a5673bf8553f1da2d Mon Sep 17 00:00:00 2001 From: Jorge Miranda Date: Wed, 25 Sep 2024 20:01:13 +0200 Subject: [PATCH 2/5] Refactor isDropImageFile --- src/pods/canvas/canvas.util.spec.ts | 77 ++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/src/pods/canvas/canvas.util.spec.ts b/src/pods/canvas/canvas.util.spec.ts index 5b51d877..d306316a 100644 --- a/src/pods/canvas/canvas.util.spec.ts +++ b/src/pods/canvas/canvas.util.spec.ts @@ -1,3 +1,78 @@ +import { isDropImageFile } from './canvas.util'; + describe('', () => { - it('should return True when there is an image in the event'); + it('should return True when there is an image in the item when dropped', () => { + //Arrange + const mockImagefile = { + kind: 'file', + type: 'image/png', + }; + + const mockDatatransfer = { + DataTransfer: { + items: [mockImagefile], + }, + } as unknown as React.DragEvent; + + //Act + isDropImageFile(mockDatatransfer); + + //Assert + expect(isDropImageFile(mockDatatransfer)).toBe(true); + }); + + it('should return False when there is not an image in the item when dropped', () => { + //Arrange + const mockImagefile = { + kind: 'file', + type: 'text', + }; + + const mockDatatransfer = { + DataTransfer: { + items: [mockImagefile], + }, + } as unknown as React.DragEvent; + + //Act + isDropImageFile(mockDatatransfer); + + //Assert + expect(isDropImageFile(mockDatatransfer)).toBe(false); + }); + + it('should return False when the kind in the item is not file', () => { + //Arrange + const mockImagefile = { + kind: 'string', + type: 'image/png', + }; + + const mockDatatransfer = { + DataTransfer: { + items: [mockImagefile], + }, + } as unknown as React.DragEvent; + + //Act + isDropImageFile(mockDatatransfer); + + //Assert + expect(isDropImageFile(mockDatatransfer)).toBe(false); + }); + + it('should return False when no items are dropped', () => { + //Arrange + const mockDatatransfer = { + DataTransfer: { + items: [], + }, + } as unknown as React.DragEvent; + + //Act + isDropImageFile(mockDatatransfer); + + //Assert + expect(isDropImageFile(mockDatatransfer)).toBe(false); + }); }); From fa70766ee3f7d1667b34c1c133edb92861592276 Mon Sep 17 00:00:00 2001 From: Jorge Miranda Date: Thu, 26 Sep 2024 11:01:23 +0200 Subject: [PATCH 3/5] Refactor IsDropFile --- src/pods/canvas/canvas.util.spec.ts | 10 +++++----- src/pods/canvas/use-drop-image-from-desktop.tsx | 8 +------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/pods/canvas/canvas.util.spec.ts b/src/pods/canvas/canvas.util.spec.ts index d306316a..411a5bc3 100644 --- a/src/pods/canvas/canvas.util.spec.ts +++ b/src/pods/canvas/canvas.util.spec.ts @@ -1,6 +1,6 @@ import { isDropImageFile } from './canvas.util'; -describe('', () => { +describe('isDropImageFile', () => { it('should return True when there is an image in the item when dropped', () => { //Arrange const mockImagefile = { @@ -9,7 +9,7 @@ describe('', () => { }; const mockDatatransfer = { - DataTransfer: { + dataTransfer: { items: [mockImagefile], }, } as unknown as React.DragEvent; @@ -29,7 +29,7 @@ describe('', () => { }; const mockDatatransfer = { - DataTransfer: { + dataTransfer: { items: [mockImagefile], }, } as unknown as React.DragEvent; @@ -49,7 +49,7 @@ describe('', () => { }; const mockDatatransfer = { - DataTransfer: { + dataTransfer: { items: [mockImagefile], }, } as unknown as React.DragEvent; @@ -64,7 +64,7 @@ describe('', () => { it('should return False when no items are dropped', () => { //Arrange const mockDatatransfer = { - DataTransfer: { + dataTransfer: { items: [], }, } as unknown as React.DragEvent; diff --git a/src/pods/canvas/use-drop-image-from-desktop.tsx b/src/pods/canvas/use-drop-image-from-desktop.tsx index db6eac0e..22434756 100644 --- a/src/pods/canvas/use-drop-image-from-desktop.tsx +++ b/src/pods/canvas/use-drop-image-from-desktop.tsx @@ -7,6 +7,7 @@ import { import { calculateShapeOffsetToXDropCoordinate } from './use-monitor.business'; import { getImageShapeSizeRestrictions } from '@/common/components/front-basic-sapes'; import { adjustSizeKeepingAspectRatio } from '@/common/utils/image.utils'; +import { isDropImageFile } from './canvas.util'; export const useDropImageFromDesktop = ( dropRef: React.MutableRefObject @@ -16,13 +17,6 @@ export const useDropImageFromDesktop = ( // TODO: #231 move this to utils / business // https://github.com/Lemoncode/quickmock/issues/231 - const isDropImageFile = (e: React.DragEvent) => { - return ( - e.dataTransfer.items.length > 0 && - e.dataTransfer.items[0].kind === 'file' && - e.dataTransfer.items[0].type.startsWith('image/') - ); - }; const handleDragOver = (e: React.DragEvent) => { if (isDropImageFile(e)) { From 25120694c13606620b3a8a1ae4c902c26f10c16d Mon Sep 17 00:00:00 2001 From: Jorge Miranda Date: Mon, 30 Sep 2024 17:39:24 +0200 Subject: [PATCH 4/5] Refactor isDropImage and test --- src/pods/canvas/canvas.util.spec.ts | 50 +++++++++++++++---- .../canvas/use-drop-image-from-desktop.tsx | 3 -- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/pods/canvas/canvas.util.spec.ts b/src/pods/canvas/canvas.util.spec.ts index 411a5bc3..421d6dd1 100644 --- a/src/pods/canvas/canvas.util.spec.ts +++ b/src/pods/canvas/canvas.util.spec.ts @@ -1,5 +1,3 @@ -import { isDropImageFile } from './canvas.util'; - describe('isDropImageFile', () => { it('should return True when there is an image in the item when dropped', () => { //Arrange @@ -14,11 +12,19 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; + const MockisDropImageFile = (e: React.DragEvent) => { + return ( + e.dataTransfer.items.length > 0 && + e.dataTransfer.items[0].kind === 'file' && + e.dataTransfer.items[0].type.startsWith('image/') + ); + }; + //Act - isDropImageFile(mockDatatransfer); + MockisDropImageFile(mockDatatransfer); //Assert - expect(isDropImageFile(mockDatatransfer)).toBe(true); + expect(MockisDropImageFile(mockDatatransfer)).toBe(true); }); it('should return False when there is not an image in the item when dropped', () => { @@ -34,11 +40,19 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; + const MockisDropImageFile = (e: React.DragEvent) => { + return ( + e.dataTransfer.items.length > 0 && + e.dataTransfer.items[0].kind === 'file' && + e.dataTransfer.items[0].type.startsWith('image/') + ); + }; + //Act - isDropImageFile(mockDatatransfer); + MockisDropImageFile(mockDatatransfer); //Assert - expect(isDropImageFile(mockDatatransfer)).toBe(false); + expect(MockisDropImageFile(mockDatatransfer)).toBe(false); }); it('should return False when the kind in the item is not file', () => { @@ -54,11 +68,19 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; + const MockisDropImageFile = (e: React.DragEvent) => { + return ( + e.dataTransfer.items.length > 0 && + e.dataTransfer.items[0].kind === 'file' && + e.dataTransfer.items[0].type.startsWith('image/') + ); + }; + //Act - isDropImageFile(mockDatatransfer); + MockisDropImageFile(mockDatatransfer); //Assert - expect(isDropImageFile(mockDatatransfer)).toBe(false); + expect(MockisDropImageFile(mockDatatransfer)).toBe(false); }); it('should return False when no items are dropped', () => { @@ -69,10 +91,18 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; + const MockisDropImageFile = (e: React.DragEvent) => { + return ( + e.dataTransfer.items.length > 0 && + e.dataTransfer.items[0].kind === 'file' && + e.dataTransfer.items[0].type.startsWith('image/') + ); + }; + //Act - isDropImageFile(mockDatatransfer); + MockisDropImageFile(mockDatatransfer); //Assert - expect(isDropImageFile(mockDatatransfer)).toBe(false); + expect(MockisDropImageFile(mockDatatransfer)).toBe(false); }); }); diff --git a/src/pods/canvas/use-drop-image-from-desktop.tsx b/src/pods/canvas/use-drop-image-from-desktop.tsx index 22434756..5a4a44fa 100644 --- a/src/pods/canvas/use-drop-image-from-desktop.tsx +++ b/src/pods/canvas/use-drop-image-from-desktop.tsx @@ -15,9 +15,6 @@ export const useDropImageFromDesktop = ( const { addNewShape, updateShapeSizeAndPosition, stageRef } = useCanvasContext(); - // TODO: #231 move this to utils / business - // https://github.com/Lemoncode/quickmock/issues/231 - const handleDragOver = (e: React.DragEvent) => { if (isDropImageFile(e)) { e.preventDefault(); From abfd1bab19f3a9b4c2933e26b69acc6f581b2d56 Mon Sep 17 00:00:00 2001 From: Jorge Miranda Date: Tue, 1 Oct 2024 17:32:30 +0200 Subject: [PATCH 5/5] Refactor isDropImage and test --- src/pods/canvas/canvas.util.spec.ts | 50 ++++++----------------------- 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/src/pods/canvas/canvas.util.spec.ts b/src/pods/canvas/canvas.util.spec.ts index 421d6dd1..2334510b 100644 --- a/src/pods/canvas/canvas.util.spec.ts +++ b/src/pods/canvas/canvas.util.spec.ts @@ -1,3 +1,5 @@ +import { isDropImageFile } from './canvas.util'; + describe('isDropImageFile', () => { it('should return True when there is an image in the item when dropped', () => { //Arrange @@ -12,19 +14,11 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; - const MockisDropImageFile = (e: React.DragEvent) => { - return ( - e.dataTransfer.items.length > 0 && - e.dataTransfer.items[0].kind === 'file' && - e.dataTransfer.items[0].type.startsWith('image/') - ); - }; - //Act - MockisDropImageFile(mockDatatransfer); + const result = isDropImageFile(mockDatatransfer); //Assert - expect(MockisDropImageFile(mockDatatransfer)).toBe(true); + expect(result).toBe(true); }); it('should return False when there is not an image in the item when dropped', () => { @@ -40,19 +34,11 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; - const MockisDropImageFile = (e: React.DragEvent) => { - return ( - e.dataTransfer.items.length > 0 && - e.dataTransfer.items[0].kind === 'file' && - e.dataTransfer.items[0].type.startsWith('image/') - ); - }; - //Act - MockisDropImageFile(mockDatatransfer); + const result = isDropImageFile(mockDatatransfer); //Assert - expect(MockisDropImageFile(mockDatatransfer)).toBe(false); + expect(result).toBe(false); }); it('should return False when the kind in the item is not file', () => { @@ -68,19 +54,11 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; - const MockisDropImageFile = (e: React.DragEvent) => { - return ( - e.dataTransfer.items.length > 0 && - e.dataTransfer.items[0].kind === 'file' && - e.dataTransfer.items[0].type.startsWith('image/') - ); - }; - //Act - MockisDropImageFile(mockDatatransfer); + const result = isDropImageFile(mockDatatransfer); //Assert - expect(MockisDropImageFile(mockDatatransfer)).toBe(false); + expect(result).toBe(false); }); it('should return False when no items are dropped', () => { @@ -91,18 +69,10 @@ describe('isDropImageFile', () => { }, } as unknown as React.DragEvent; - const MockisDropImageFile = (e: React.DragEvent) => { - return ( - e.dataTransfer.items.length > 0 && - e.dataTransfer.items[0].kind === 'file' && - e.dataTransfer.items[0].type.startsWith('image/') - ); - }; - //Act - MockisDropImageFile(mockDatatransfer); + const result = isDropImageFile(mockDatatransfer); //Assert - expect(MockisDropImageFile(mockDatatransfer)).toBe(false); + expect(result).toBe(false); }); });