From 012f507cd3a6488242b320fedc3be093ccf3d171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Tue, 12 Aug 2025 12:39:09 +0300 Subject: [PATCH] =?UTF-8?q?i18n=20ve=20Localization=20d=C3=BCzenlemesi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/dev-dist/sw.js | 2 +- ui/package-lock.json | 1500 +++++++++++++---- ui/package.json | 2 - ui/src/@types/menu.ts | 34 +- ui/src/App.tsx | 1 - .../importManager/ImportDashboard.tsx | 33 +- .../importManager/ImportPreview.tsx | 29 +- .../components/layouts/AuthLayout/Simple.tsx | 3 +- .../HorizontalMenuContent.tsx | 6 +- .../HorizontalMenuDropdownItem.tsx | 64 +- .../HorizontalMenuItem.tsx | 73 +- .../components/template/LanguageSelector.tsx | 5 +- .../StackedSideNav/StackedSideNav.tsx | 189 +-- .../VerticalCollapsedMenuItem.tsx | 25 +- .../VerticalMenuContent.tsx | 8 +- .../VerticalSingleMenuItem.tsx | 13 +- .../dateLocales.constant.ts} | 23 - ui/src/locales/index.ts | 4 - ui/src/locales/lang/en.json | 20 - ui/src/proxy/charts/models.ts | 2 +- ui/src/routes/dynamicRouteLoader.tsx | 14 +- ui/src/routes/dynamicRoutesContext.tsx | 4 +- ui/src/services/account.service.ts | 2 +- .../admin/list-form-customization.service.ts | 2 +- ui/src/services/admin/list-form.service.ts | 2 +- ui/src/services/ai.service.ts | 2 +- ui/src/services/form.service.ts | 2 +- ui/src/services/identity.service.ts | 4 +- ui/src/services/import.service.ts | 7 +- .../list-form-customization.service.ts | 2 +- ui/src/services/organization-unit.service.ts | 2 +- ui/src/services/route.service.ts | 2 +- ui/src/services/setting-ui.service.ts | 2 +- ui/src/services/tenants.ts | 25 +- ui/src/utils/hooks/useLocale.ts | 9 +- .../edit/json-row-operations/types.ts | 7 +- ui/src/views/form/SubForms.tsx | 4 +- .../form/editors/GridBoxEditorComponent.tsx | 2 +- .../form/editors/TagBoxEditorComponent.tsx | 2 +- ui/src/views/form/types.ts | 2 +- ui/src/views/forum/admin/PostManagement.tsx | 3 +- ui/src/views/index.ts | 3 + 42 files changed, 1462 insertions(+), 678 deletions(-) rename ui/src/{locales/locales.ts => constants/dateLocales.constant.ts} (62%) delete mode 100644 ui/src/locales/index.ts delete mode 100644 ui/src/locales/lang/en.json create mode 100644 ui/src/views/index.ts diff --git a/ui/dev-dist/sw.js b/ui/dev-dist/sw.js index c9bffd8e..2849fdfe 100644 --- a/ui/dev-dist/sw.js +++ b/ui/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "index.html", - "revision": "0.4akve1tmvk" + "revision": "0.ettrttb2g3" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/ui/package-lock.json b/ui/package-lock.json index 6378de11..fbe6ea70 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -37,7 +37,6 @@ "formik": "^2.4.6", "framer-motion": "^11.15.0", "history": "^5.3.0", - "i18next": "^23.7.11", "jspdf": "^3.0.1", "jwt-decode": "^4.0.0", "lodash": "^4.17.21", @@ -50,7 +49,6 @@ "react-error-boundary": "^5.0.0", "react-helmet": "^6.1.0", "react-highlight-words": "^0.20.0", - "react-i18next": "^15.2.0", "react-icons": "^5.4.0", "react-modal": "^3.16.3", "react-quill": "^2.0.0", @@ -1625,16 +1623,6 @@ "version": "0.8.1", "license": "MIT" }, - "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@emotion/cache": { "version": "11.13.1", "license": "MIT", @@ -1733,8 +1721,384 @@ "version": "0.3.1", "license": "MIT" }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/win32-x64": { "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -2255,19 +2619,21 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.2", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz", + "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -2275,8 +2641,289 @@ } } }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.29.1", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "cpu": [ "x64" ], @@ -2453,7 +3100,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, @@ -2486,9 +3135,14 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.16.16", + "version": "18.19.122", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.122.tgz", + "integrity": "sha512-yzegtT82dwTNEe/9y+CM8cgb42WrUfMMCg2QqSddzO1J6uPmBD7qKCZ7dOHZP2Yrpm/kb0eqdNMn2MUyEiqBmA==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -2500,6 +3154,8 @@ }, "node_modules/@types/quill": { "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/quill/-/quill-1.3.10.tgz", + "integrity": "sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==", "license": "MIT", "dependencies": { "parchment": "^1.1.2" @@ -2507,6 +3163,8 @@ }, "node_modules/@types/quill/node_modules/parchment": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==", "license": "BSD-3-Clause" }, "node_modules/@types/raf": { @@ -3138,9 +3796,14 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -3459,6 +4122,23 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "license": "MIT", @@ -3598,6 +4278,8 @@ }, "node_modules/clone": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "license": "MIT", "engines": { "node": ">=0.8" @@ -3835,7 +4517,9 @@ } }, "node_modules/css-select": { - "version": "5.1.0", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -3851,6 +4535,8 @@ }, "node_modules/css-tree": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "license": "MIT", "dependencies": { @@ -3883,12 +4569,14 @@ } }, "node_modules/cssnano": { - "version": "6.0.1", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dev": true, "license": "MIT", "dependencies": { - "cssnano-preset-default": "^6.0.1", - "lilconfig": "^2.1.0" + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -3898,64 +4586,97 @@ "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-default": { - "version": "6.0.1", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", "dev": true, "license": "MIT", "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^4.0.0", - "postcss-calc": "^9.0.0", - "postcss-colormin": "^6.0.0", - "postcss-convert-values": "^6.0.0", - "postcss-discard-comments": "^6.0.0", - "postcss-discard-duplicates": "^6.0.0", - "postcss-discard-empty": "^6.0.0", - "postcss-discard-overridden": "^6.0.0", - "postcss-merge-longhand": "^6.0.0", - "postcss-merge-rules": "^6.0.1", - "postcss-minify-font-values": "^6.0.0", - "postcss-minify-gradients": "^6.0.0", - "postcss-minify-params": "^6.0.0", - "postcss-minify-selectors": "^6.0.0", - "postcss-normalize-charset": "^6.0.0", - "postcss-normalize-display-values": "^6.0.0", - "postcss-normalize-positions": "^6.0.0", - "postcss-normalize-repeat-style": "^6.0.0", - "postcss-normalize-string": "^6.0.0", - "postcss-normalize-timing-functions": "^6.0.0", - "postcss-normalize-unicode": "^6.0.0", - "postcss-normalize-url": "^6.0.0", - "postcss-normalize-whitespace": "^6.0.0", - "postcss-ordered-values": "^6.0.0", - "postcss-reduce-initial": "^6.0.0", - "postcss-reduce-transforms": "^6.0.0", - "postcss-svgo": "^6.0.0", - "postcss-unique-selectors": "^6.0.0" + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default/node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" } }, "node_modules/cssnano-utils": { - "version": "4.0.0", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "dev": true, "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/csso": { "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3968,6 +4689,8 @@ }, "node_modules/csso/node_modules/css-tree": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", "dev": true, "license": "MIT", "dependencies": { @@ -3981,6 +4704,8 @@ }, "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "dev": true, "license": "CC0-1.0" }, @@ -4006,7 +4731,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -4021,14 +4748,16 @@ } }, "node_modules/deep-equal": { - "version": "2.2.1", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.2.2", "is-arguments": "^1.1.1", "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", @@ -4038,11 +4767,14 @@ "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", + "regexp.prototype.flags": "^1.5.1", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4242,6 +4974,8 @@ }, "node_modules/dom-serializer": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "license": "MIT", "dependencies": { @@ -4266,6 +5000,8 @@ }, "node_modules/domhandler": { "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4291,7 +5027,9 @@ } }, "node_modules/domutils": { - "version": "3.1.0", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4412,6 +5150,8 @@ }, "node_modules/entities": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -4566,6 +5306,8 @@ }, "node_modules/esbuild": { "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4608,6 +5350,18 @@ "node": ">=6" } }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint": { "version": "8.57.0", "dev": true, @@ -4742,13 +5496,15 @@ } }, "node_modules/eslint-import-resolver-typescript/node_modules/globby": { - "version": "13.1.4", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", "merge2": "^1.4.1", "slash": "^4.0.0" }, @@ -4938,7 +5694,9 @@ } }, "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.3.0", + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", "dev": true, "license": "MIT", "engines": { @@ -4949,7 +5707,9 @@ } }, "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "9.0.4", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -5064,11 +5824,13 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -5098,17 +5860,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "dev": true, @@ -5125,7 +5876,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5255,6 +6008,8 @@ }, "node_modules/extend": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, "node_modules/fast-csv": { @@ -5277,14 +6032,16 @@ "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.3.2", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -5433,11 +6190,19 @@ } }, "node_modules/for-each": { - "version": "0.3.3", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/foreground-child": { @@ -5533,7 +6298,9 @@ "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.1.1", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", "dev": true, "license": "MIT", "dependencies": { @@ -5549,6 +6316,20 @@ "version": "1.0.0", "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/fstream": { "version": "1.0.12", "license": "ISC", @@ -5888,13 +6669,6 @@ "react-is": "^16.7.0" } }, - "node_modules/html-parse-stringify": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "void-elements": "3.1.0" - } - }, "node_modules/html2canvas": { "version": "1.4.1", "license": "MIT", @@ -5907,27 +6681,6 @@ "node": ">=8.0.0" } }, - "node_modules/i18next": { - "version": "23.16.8", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2" - } - }, "node_modules/icss-replace-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", @@ -6512,7 +7265,9 @@ } }, "node_modules/jsesc": { - "version": "3.1.0", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -6843,11 +7598,15 @@ }, "node_modules/mdn-data": { "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true, "license": "CC0-1.0" }, "node_modules/memoize-one": { - "version": "5.2.1", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-4.0.3.tgz", + "integrity": "sha512-QmpUu4KqDmX0plH4u+tf0riMc1KHE1+lw95cMrLlXQAFOx/xnBtwhZ52XJxd9X2O6kwKBqX32kmhbhlobD0cuw==", "license": "MIT" }, "node_modules/merge2": { @@ -6958,7 +7717,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -7374,8 +8135,20 @@ "node": ">= 6" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.49", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -7392,7 +8165,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -7402,6 +8175,8 @@ }, "node_modules/postcss-calc": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7416,7 +8191,9 @@ } }, "node_modules/postcss-calc/node_modules/postcss-selector-parser": { - "version": "6.0.13", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "license": "MIT", "dependencies": { @@ -7456,16 +8233,18 @@ } }, "node_modules/postcss-cli/node_modules/globby": { - "version": "14.0.2", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "unicorn-magic": "^0.3.0" }, "engines": { "node": ">=18" @@ -7474,12 +8253,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postcss-cli/node_modules/path-type": { - "version": "5.0.0", + "node_modules/postcss-cli/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 4" + } + }, + "node_modules/postcss-cli/node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7497,79 +8288,91 @@ } }, "node_modules/postcss-colormin": { - "version": "6.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { - "version": "6.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "dev": true, "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { - "version": "6.0.0", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "dev": true, "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { - "version": "6.0.0", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "dev": true, "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "dev": true, "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-import": { @@ -7654,39 +8457,59 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "6.0.0", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.0" + "stylehacks": "^6.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { - "version": "6.0.1", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.0", - "postcss-selector-parser": "^6.0.5" + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, "node_modules/postcss-minify-font-values": { - "version": "6.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dev": true, "license": "MIT", "dependencies": { @@ -7696,53 +8519,73 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { - "version": "6.0.0", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dev": true, "license": "MIT", "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^4.0.0", + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { - "version": "6.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^4.0.0", + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.0", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, "node_modules/postcss-modules": { @@ -7964,18 +8807,22 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "dev": true, "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dev": true, "license": "MIT", "dependencies": { @@ -7985,11 +8832,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7999,11 +8848,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8013,11 +8864,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8027,11 +8880,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dev": true, "license": "MIT", "dependencies": { @@ -8041,26 +8896,30 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { - "version": "6.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8070,11 +8929,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -8084,41 +8945,47 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dev": true, "license": "MIT", "dependencies": { - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { - "version": "6.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { - "version": "6.0.0", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dev": true, "license": "MIT", "dependencies": { @@ -8128,7 +8995,7 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reporter": { @@ -8163,32 +9030,50 @@ } }, "node_modules/postcss-svgo": { - "version": "6.0.0", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^3.0.2" + "svgo": "^3.2.0" }, "engines": { "node": "^14 || ^16 || >= 18" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.0", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, "node_modules/postcss-value-parser": { @@ -8318,6 +9203,8 @@ }, "node_modules/quill": { "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", "license": "BSD-3-Clause", "dependencies": { "clone": "^2.1.1", @@ -8342,6 +9229,8 @@ }, "node_modules/quill/node_modules/deep-equal": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", "license": "MIT", "dependencies": { "is-arguments": "^1.1.1", @@ -8360,18 +9249,26 @@ }, "node_modules/quill/node_modules/eventemitter3": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==", "license": "MIT" }, "node_modules/quill/node_modules/fast-diff": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", "license": "Apache-2.0" }, "node_modules/quill/node_modules/parchment": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==", "license": "BSD-3-Clause" }, "node_modules/quill/node_modules/quill-delta": { "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", "license": "MIT", "dependencies": { "deep-equal": "^1.0.1", @@ -8551,30 +9448,6 @@ "react": "^0.14.0 || ^15.0.0 || ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0" } }, - "node_modules/react-highlight-words/node_modules/memoize-one": { - "version": "4.0.3", - "license": "MIT" - }, - "node_modules/react-i18next": { - "version": "15.2.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.0", - "html-parse-stringify": "^3.0.1" - }, - "peerDependencies": { - "i18next": ">= 23.2.3", - "react": ">= 16.8.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, "node_modules/react-icons": { "version": "5.4.0", "license": "MIT", @@ -8606,6 +9479,8 @@ }, "node_modules/react-quill": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-quill/-/react-quill-2.0.0.tgz", + "integrity": "sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg==", "license": "MIT", "dependencies": { "@types/quill": "^1.3.10", @@ -8862,17 +9737,6 @@ "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -8952,16 +9816,16 @@ } }, "node_modules/rollup": { - "version": "3.29.5", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=10.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" @@ -9817,7 +10681,9 @@ } }, "node_modules/semver": { - "version": "7.6.2", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -10182,18 +11048,34 @@ "dev": true }, "node_modules/stylehacks": { - "version": "6.0.0", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, "node_modules/stylis": { @@ -10294,14 +11176,17 @@ } }, "node_modules/svgo": { - "version": "3.0.2", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dev": true, "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", - "css-tree": "^2.2.1", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.0.0" }, @@ -10560,19 +11445,26 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.10", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.2", + "fdir": "^6.4.4", "picomatch": "^4.0.2" }, "engines": { "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.2", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", "dev": true, "license": "MIT", "peerDependencies": { @@ -10585,7 +11477,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -10596,7 +11490,9 @@ } }, "node_modules/tmp": { - "version": "0.2.3", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "license": "MIT", "engines": { "node": ">=14.14" @@ -10787,6 +11683,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true, + "license": "MIT" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "dev": true, @@ -10824,7 +11727,9 @@ } }, "node_modules/unicorn-magic": { - "version": "0.1.0", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, "license": "MIT", "engines": { @@ -10956,6 +11861,8 @@ }, "node_modules/vite": { "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", "dependencies": { @@ -11053,11 +11960,13 @@ } }, "node_modules/vite/node_modules/rollup": { - "version": "4.29.1", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -11067,35 +11976,29 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.29.1", - "@rollup/rollup-android-arm64": "4.29.1", - "@rollup/rollup-darwin-arm64": "4.29.1", - "@rollup/rollup-darwin-x64": "4.29.1", - "@rollup/rollup-freebsd-arm64": "4.29.1", - "@rollup/rollup-freebsd-x64": "4.29.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", - "@rollup/rollup-linux-arm-musleabihf": "4.29.1", - "@rollup/rollup-linux-arm64-gnu": "4.29.1", - "@rollup/rollup-linux-arm64-musl": "4.29.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", - "@rollup/rollup-linux-riscv64-gnu": "4.29.1", - "@rollup/rollup-linux-s390x-gnu": "4.29.1", - "@rollup/rollup-linux-x64-gnu": "4.29.1", - "@rollup/rollup-linux-x64-musl": "4.29.1", - "@rollup/rollup-win32-arm64-msvc": "4.29.1", - "@rollup/rollup-win32-ia32-msvc": "4.29.1", - "@rollup/rollup-win32-x64-msvc": "4.29.1", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", "fsevents": "~2.3.2" } }, - "node_modules/void-elements": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/warning": { "version": "4.0.3", "license": "MIT", @@ -11161,16 +12064,19 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.9", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -11380,20 +12286,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/workbox-build/node_modules/rollup": { - "version": "2.79.2", - "dev": true, - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/workbox-build/node_modules/source-map": { "version": "0.8.0-beta.0", "dev": true, @@ -11569,13 +12461,15 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.6.1", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, "node_modules/yargs": { diff --git a/ui/package.json b/ui/package.json index 82a3e532..200e56da 100644 --- a/ui/package.json +++ b/ui/package.json @@ -44,7 +44,6 @@ "formik": "^2.4.6", "framer-motion": "^11.15.0", "history": "^5.3.0", - "i18next": "^23.7.11", "jspdf": "^3.0.1", "jwt-decode": "^4.0.0", "lodash": "^4.17.21", @@ -57,7 +56,6 @@ "react-error-boundary": "^5.0.0", "react-helmet": "^6.1.0", "react-highlight-words": "^0.20.0", - "react-i18next": "^15.2.0", "react-icons": "^5.4.0", "react-modal": "^3.16.3", "react-quill": "^2.0.0", diff --git a/ui/src/@types/menu.ts b/ui/src/@types/menu.ts index d4a5c9c1..94e375cd 100644 --- a/ui/src/@types/menu.ts +++ b/ui/src/@types/menu.ts @@ -1,31 +1,31 @@ -import { MenuDto } from "@/proxy/menus"; +import { MenuDto } from '@/proxy/menus/models' export interface MenuItem extends MenuDto { - children?: MenuItem[]; + children?: MenuItem[] } export interface MenuApiResponse { - totalCount: number; - items: MenuItem[]; + totalCount: number + items: MenuItem[] } export interface DragEndEvent { active: { - id: string; + id: string data: { current: { - type: string; - item: MenuItem; - }; - }; - }; + type: string + item: MenuItem + } + } + } over: { - id: string; + id: string data: { current: { - type: string; - item?: MenuItem; - }; - }; - } | null; -} \ No newline at end of file + type: string + item?: MenuItem + } + } + } | null +} diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 90d67cb2..812fb7f8 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -3,7 +3,6 @@ import Theme from '@/components/template/Theme' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { StoreProvider } from 'easy-peasy' import { BrowserRouter } from 'react-router-dom' -import './locales' import { store } from './store' import { DynamicRoutesProvider } from './routes/dynamicRoutesContext' import { ComponentProvider } from './contexts/ComponentContext' diff --git a/ui/src/components/importManager/ImportDashboard.tsx b/ui/src/components/importManager/ImportDashboard.tsx index 92e8c548..4d447c06 100644 --- a/ui/src/components/importManager/ImportDashboard.tsx +++ b/ui/src/components/importManager/ImportDashboard.tsx @@ -14,9 +14,9 @@ import { import { FileUploadArea } from './FileUploadArea' import { ImportPreview } from './ImportPreview' import { ImportProgress } from './ImportProgress' -import { GridDto } from '@/proxy/form' import { ListFormImportDto, ListFormImportExecuteDto } from '@/proxy/imports/models' import { ImportService } from '@/services/import.service' +import { GridDto } from '@/proxy/form/models' interface ImportDashboardProps { gridDto: GridDto @@ -47,7 +47,7 @@ export const ImportDashboard: React.FC = ({ gridDto }) => gridDto.gridOptions.listFormCode || '', ) setImportHistory(history) - + // Execute cache'ini temizle çünkü history değişmiş olabilir setSessionExecutes({}) setExpandedSessions(new Set()) @@ -97,17 +97,26 @@ export const ImportDashboard: React.FC = ({ gridDto }) => if (session.status !== 'failed') { // Daha uzun süreli ve gerçekçi bir progression setTimeout(async () => { - session = await importService.updateSession(session.id, { status: 'validating', listFormCode: gridDto.gridOptions.listFormCode || '' }) + session = await importService.updateSession(session.id, { + status: 'validating', + listFormCode: gridDto.gridOptions.listFormCode || '', + }) setCurrentSession(session) }, 1000) // 1 saniye sonra validating setTimeout(async () => { - session = await importService.updateSession(session.id, { status: 'processing', listFormCode: gridDto.gridOptions.listFormCode || '' }) + session = await importService.updateSession(session.id, { + status: 'processing', + listFormCode: gridDto.gridOptions.listFormCode || '', + }) setCurrentSession(session) }, 2000) // 2 saniye sonra processing başlangıç setTimeout(async () => { - session = await importService.updateSession(session.id, { status: 'uploaded', listFormCode: gridDto.gridOptions.listFormCode || '' }) + session = await importService.updateSession(session.id, { + status: 'uploaded', + listFormCode: gridDto.gridOptions.listFormCode || '', + }) setCurrentSession(session) }, 3000) // 3 saniye sonra uploaded @@ -146,7 +155,7 @@ export const ImportDashboard: React.FC = ({ gridDto }) => const session = await importService.executeImport(sessionId, listFormCode, selectedRows) pollImportStatus(session.importId) await loadImportHistory() - + // Execute sonrası History sekmesine geç ki kullanıcı yeni execute'i görebilsin setActiveTab('history') } catch (error) { @@ -199,7 +208,7 @@ export const ImportDashboard: React.FC = ({ gridDto }) => const getEditableColumns = () => { return gridDto.columnFormats.filter( - (col) => + (col: any) => col.visible && col.columnEditingDto.allowEditing && col.canCreate && @@ -287,7 +296,7 @@ export const ImportDashboard: React.FC = ({ gridDto }) => - {editableColumns.map((column) => ( + {editableColumns.map((column: any) => ( {column.captionName || column.fieldName} @@ -308,7 +317,9 @@ export const ImportDashboard: React.FC = ({ gridDto }) => - {column.validationRuleDto.some((rule) => rule.type === 'required') ? ( + {column.validationRuleDto.some( + (rule: any) => rule.type === 'required', + ) ? ( Yes ) : ( No @@ -455,7 +466,9 @@ export const ImportDashboard: React.FC = ({ gridDto }) => if (sessionExecutes[session.id]) { setLoadingExecutes((prev) => new Set([...prev, session.id])) try { - const executes = await importService.getListFormImportExecutes(session.id) + const executes = await importService.getListFormImportExecutes( + session.id, + ) setSessionExecutes((prev) => ({ ...prev, [session.id]: executes, diff --git a/ui/src/components/importManager/ImportPreview.tsx b/ui/src/components/importManager/ImportPreview.tsx index 7061bd86..f6119a4e 100644 --- a/ui/src/components/importManager/ImportPreview.tsx +++ b/ui/src/components/importManager/ImportPreview.tsx @@ -1,13 +1,17 @@ import React, { useState, useEffect, useRef } from 'react' import { CheckCircle, AlertTriangle, Eye, Play, X } from 'lucide-react' import { ListFormImportDto } from '@/proxy/imports/models' -import { GridDto } from '@/proxy/form' +import { GridDto } from '@/proxy/form/models' import { ImportService } from '@/services/import.service' interface ImportPreviewProps { session: ListFormImportDto gridDto: GridDto - onExecute: (sessionId: string, listFormCode: string, selectedRows?: number[]) => Promise<{ successCount?: number } | void> + onExecute: ( + sessionId: string, + listFormCode: string, + selectedRows?: number[], + ) => Promise<{ successCount?: number } | void> loading: boolean importService: ImportService onPreviewLoaded?: () => void @@ -20,13 +24,15 @@ export const ImportPreview: React.FC = ({ loading, importService, onPreviewLoaded, - }) => { const [previewData, setPreviewData] = useState(null) const [selectedRows, setSelectedRows] = useState([]) const [selectAll, setSelectAll] = useState(false) const [showSuccessMessage, setShowSuccessMessage] = useState(false) - const [lastExecutionResult, setLastExecutionResult] = useState<{ selectedCount: number; successCount: number } | null>(null) + const [lastExecutionResult, setLastExecutionResult] = useState<{ + selectedCount: number + successCount: number + } | null>(null) const hasCalledOnPreviewLoaded = useRef(false) // Selection handlers @@ -103,18 +109,18 @@ export const ImportPreview: React.FC = ({ } const canExecute = (previewData?.rows?.length || 0) > 0 && selectedRows.length > 0 && !loading - + // Execute handler to clear selections after execution const handleExecute = async () => { const selectedCount = selectedRows.length try { const result = await onExecute(session.id, session.listFormCode, selectedRows) - + // Check if execution was successful if (result && typeof result === 'object' && 'successCount' in result) { const successCount = result.successCount || 0 setLastExecutionResult({ selectedCount, successCount }) - + // Show success message if all selected rows were processed successfully if (successCount === selectedCount) { setShowSuccessMessage(true) @@ -124,7 +130,7 @@ export const ImportPreview: React.FC = ({ }, 5000) } } - + // Clear selections after execute setSelectedRows([]) setSelectAll(false) @@ -173,9 +179,7 @@ export const ImportPreview: React.FC = ({ {/* Preview Data */} {previewData && previewData.headers && previewData.headers.length > 0 ? (
-

- Data Preview -

+

Data Preview

@@ -257,7 +261,8 @@ export const ImportPreview: React.FC = ({
- Import completed successfully! {lastExecutionResult.successCount} of {lastExecutionResult.selectedCount} rows were imported. + Import completed successfully! {lastExecutionResult.successCount} of{' '} + {lastExecutionResult.selectedCount} rows were imported.
diff --git a/ui/src/components/layouts/AuthLayout/Simple.tsx b/ui/src/components/layouts/AuthLayout/Simple.tsx index e0d9288c..895d13a1 100644 --- a/ui/src/components/layouts/AuthLayout/Simple.tsx +++ b/ui/src/components/layouts/AuthLayout/Simple.tsx @@ -6,13 +6,13 @@ import type { ReactNode, ReactElement } from 'react' import type { CommonProps } from '@/@types/common' import { HiArrowLeft, HiCheck } from 'react-icons/hi' import { Avatar, Select } from '@/components/ui' -import i18n, { dateLocales } from '@/locales' import { useStoreActions, useStoreState } from '@/store' import appConfig from '@/configs/app.config' import dayjs from 'dayjs' import { components } from 'react-select' import { ROUTES_ENUM } from '@/routes/route.constant' import { hasSubdomain } from '@/utils/subdomain' +import { dateLocales } from '@/constants/dateLocales.constant' interface SimpleProps extends CommonProps { content?: ReactNode @@ -38,7 +38,6 @@ const Simple = ({ children, content, ...rest }: SimpleProps) => { const onLanguageSelect = (cultureName = appConfig.locale) => { const dispatchLang = () => { - i18n.changeLanguage(cultureName) setLang(cultureName) } diff --git a/ui/src/components/template/HorizontalMenuContent/HorizontalMenuContent.tsx b/ui/src/components/template/HorizontalMenuContent/HorizontalMenuContent.tsx index 155b4dd5..5239d018 100644 --- a/ui/src/components/template/HorizontalMenuContent/HorizontalMenuContent.tsx +++ b/ui/src/components/template/HorizontalMenuContent/HorizontalMenuContent.tsx @@ -7,10 +7,10 @@ import { NAV_ITEM_TYPE_TITLE, } from '@/constants/navigation.constant' import { useStoreState } from '@/store' -import { useTranslation } from 'react-i18next' import HorizontalMenuDropdownItem from './HorizontalMenuDropdownItem' import HorizontalMenuItem from './HorizontalMenuItem' import HorizontalMenuIcon from './HorizontalMenuIcon' +import { useLocalization } from '@/utils/hooks/useLocalization' type HorizontalMenuContentProps = { manuVariant: NavMode @@ -18,8 +18,6 @@ type HorizontalMenuContentProps = { } const HorizontalMenuContent = ({ manuVariant }: HorizontalMenuContentProps) => { - const { t } = useTranslation() - const { mainMenu: navigationConfig } = useStoreState((state) => state.abpConfig.menu) return ( @@ -45,7 +43,7 @@ const HorizontalMenuContent = ({ manuVariant }: HorizontalMenuContentProps) => { title={
- {t(secondarySubNav.translateKey, secondarySubNav.title)} + {secondarySubNav.title}
} > diff --git a/ui/src/components/template/HorizontalMenuContent/HorizontalMenuDropdownItem.tsx b/ui/src/components/template/HorizontalMenuContent/HorizontalMenuDropdownItem.tsx index 579abd41..7ddb6830 100644 --- a/ui/src/components/template/HorizontalMenuContent/HorizontalMenuDropdownItem.tsx +++ b/ui/src/components/template/HorizontalMenuContent/HorizontalMenuDropdownItem.tsx @@ -1,53 +1,37 @@ import Dropdown from '@/components/ui/Dropdown' import HorizontalMenuNavLink from './HorizontalMenuNavLink' import classNames from 'classnames' -import { useTranslation } from 'react-i18next' export type HorizontalMenuItemProps = { - nav: { - key: string - title: string - translateKey: string - icon: string - path: string - isExternalLink?: boolean - } + nav: { + key: string + title: string + translateKey: string + icon: string + path: string + isExternalLink?: boolean + } } const HorizontalMenuDropdownItem = ({ nav }: HorizontalMenuItemProps) => { - const { title, translateKey, path, key, isExternalLink, icon } = nav + const { title, path, key, isExternalLink, icon } = nav - const { t } = useTranslation() - - const itemTitle = t(translateKey, title) - - return ( - + {path ? ( + - {path ? ( - - {itemTitle} - - ) : ( - {itemTitle} - )} - - ) + {title} + + ) : ( + {title} + )} + + ) } export default HorizontalMenuDropdownItem diff --git a/ui/src/components/template/HorizontalMenuContent/HorizontalMenuItem.tsx b/ui/src/components/template/HorizontalMenuContent/HorizontalMenuItem.tsx index 1d8f610c..f3572a74 100644 --- a/ui/src/components/template/HorizontalMenuContent/HorizontalMenuItem.tsx +++ b/ui/src/components/template/HorizontalMenuContent/HorizontalMenuItem.tsx @@ -1,54 +1,45 @@ import navigationIcon from '@/configs/navigation-icon.config' import MenuItem from '@/components/ui/MenuItem' import HorizontalMenuNavLink from './HorizontalMenuNavLink' -import { useTranslation } from 'react-i18next' import type { NavMode } from '@/@types/theme' export type HorizontalMenuItemProps = { - nav: { - key: string - title: string - translateKey: string - icon: string - path: string - isExternalLink?: boolean - } - isLink?: boolean - manuVariant: NavMode + nav: { + key: string + title: string + translateKey: string + icon: string + path: string + isExternalLink?: boolean + } + isLink?: boolean + manuVariant: NavMode } -const HorizontalMenuItem = ({ - nav, - isLink, - manuVariant, -}: HorizontalMenuItemProps) => { - const { title, translateKey, icon, path, isExternalLink } = nav +const HorizontalMenuItem = ({ nav, isLink, manuVariant }: HorizontalMenuItemProps) => { + const { title, icon, path, isExternalLink } = nav - const { t } = useTranslation() + const renderIcon = icon && {navigationIcon[icon]} - const itemTitle = t(translateKey, title) - - const renderIcon = icon && {navigationIcon[icon]} - - return ( - <> - {path && isLink ? ( - - - - {renderIcon} - {itemTitle} - - - - ) : ( - - {renderIcon} - {itemTitle} - - )} - - ) + return ( + <> + {path && isLink ? ( + + + + {renderIcon} + {title} + + + + ) : ( + + {renderIcon} + {title} + + )} + + ) } export default HorizontalMenuItem diff --git a/ui/src/components/template/LanguageSelector.tsx b/ui/src/components/template/LanguageSelector.tsx index af0b5adf..91c60ecf 100644 --- a/ui/src/components/template/LanguageSelector.tsx +++ b/ui/src/components/template/LanguageSelector.tsx @@ -5,13 +5,11 @@ import Spinner from '@/components/ui/Spinner' import classNames from 'classnames' import withHeaderItem from '@/utils/hoc/withHeaderItem' import { useStoreState, useStoreActions } from '@/store' -import { dateLocales } from '@/locales' import dayjs from 'dayjs' -// eslint-disable-next-line import/no-named-as-default -import i18n from 'i18next' import { HiCheck } from 'react-icons/hi' import type { CommonProps } from '@/@types/common' import appConfig from '@/configs/app.config' +import { dateLocales } from '@/constants/dateLocales.constant' const _LanguageSelector = ({ className }: CommonProps) => { const [loading, setLoading] = useState(false) @@ -41,7 +39,6 @@ const _LanguageSelector = ({ className }: CommonProps) => { setLoading(true) const dispatchLang = () => { - i18n.changeLanguage(cultureName) setLang(cultureName) setLoading(false) } diff --git a/ui/src/components/template/StackedSideNav/StackedSideNav.tsx b/ui/src/components/template/StackedSideNav/StackedSideNav.tsx index 96c87f2c..274a31e0 100644 --- a/ui/src/components/template/StackedSideNav/StackedSideNav.tsx +++ b/ui/src/components/template/StackedSideNav/StackedSideNav.tsx @@ -1,128 +1,113 @@ import { useState } from 'react' import { - NAV_MODE_THEMED, - SPLITTED_SIDE_NAV_MINI_WIDTH, - SPLITTED_SIDE_NAV_SECONDARY_WIDTH, - DIR_LTR, - DIR_RTL, - NAV_MODE_TRANSPARENT, + NAV_MODE_THEMED, + SPLITTED_SIDE_NAV_MINI_WIDTH, + SPLITTED_SIDE_NAV_SECONDARY_WIDTH, + DIR_LTR, + DIR_RTL, + NAV_MODE_TRANSPARENT, } from '@/constants/theme.constant' import StackedSideNavMini, { SelectedMenuItem } from './StackedSideNavMini' import StackedSideNavSecondary from './StackedSideNavSecondary' import useResponsive from '@/utils/hooks/useResponsive' import isEmpty from 'lodash/isEmpty' import { useStoreState } from '@/store' -import { useTranslation } from 'react-i18next' const stackedSideNavDefaultStyle = { - width: SPLITTED_SIDE_NAV_MINI_WIDTH, + width: SPLITTED_SIDE_NAV_MINI_WIDTH, } const StackedSideNav = () => { - const { t } = useTranslation() + const [selectedMenu, setSelectedMenu] = useState({}) + const [activeKeys, setActiveKeys] = useState([]) - const [selectedMenu, setSelectedMenu] = useState({}) - const [activeKeys, setActiveKeys] = useState([]) + const themeColor = useStoreState((state) => state.theme.themeColor) + const primaryColorLevel = useStoreState((state) => state.theme.primaryColorLevel) + const navMode = useStoreState((state) => state.theme.navMode) + const mode = useStoreState((state) => state.theme.mode) + const direction = useStoreState((state) => state.theme.direction) + const currentRouteKey = useStoreState((state) => state.base.common.currentRouteKey) + const userAuthority = useStoreState((state) => state.auth.user.authority) - const themeColor = useStoreState((state) => state.theme.themeColor) - const primaryColorLevel = useStoreState( - (state) => state.theme.primaryColorLevel - ) - const navMode = useStoreState((state) => state.theme.navMode) - const mode = useStoreState((state) => state.theme.mode) - const direction = useStoreState((state) => state.theme.direction) - const currentRouteKey = useStoreState( - (state) => state.base.common.currentRouteKey - ) - const userAuthority = useStoreState((state) => state.auth.user.authority) + const { larger } = useResponsive() - const { larger } = useResponsive() + const navColor = (navType: string, mode: string, ableTheme = true) => { + if (navMode === NAV_MODE_THEMED && ableTheme) { + return `bg-${themeColor}-${primaryColorLevel} ${navType}-${mode}` + } + return `${navType}-${mode}` + } - const navColor = (navType: string, mode: string, ableTheme = true) => { - if (navMode === NAV_MODE_THEMED && ableTheme) { - return `bg-${themeColor}-${primaryColorLevel} ${navType}-${mode}` - } - return `${navType}-${mode}` + const handleChange = (selected: SelectedMenuItem) => { + setSelectedMenu(selected) + } + + const handleCollpase = () => { + setSelectedMenu({}) + setActiveKeys([]) + } + + const handleSetActiveKey = (key: string[]) => { + setActiveKeys(key) + } + + const stackedSideNavSecondaryDirStyle = () => { + let style = {} + const marginValue = `${-SPLITTED_SIDE_NAV_SECONDARY_WIDTH}px` + if (direction === DIR_LTR) { + style = { marginLeft: marginValue } } - const handleChange = (selected: SelectedMenuItem) => { - setSelectedMenu(selected) + if (direction === DIR_RTL) { + style = { marginRight: marginValue } } - const handleCollpase = () => { - setSelectedMenu({}) - setActiveKeys([]) - } + return style + } - const handleSetActiveKey = (key: string[]) => { - setActiveKeys(key) - } - - const stackedSideNavSecondaryDirStyle = () => { - let style = {} - const marginValue = `${-SPLITTED_SIDE_NAV_SECONDARY_WIDTH}px` - if (direction === DIR_LTR) { - style = { marginLeft: marginValue } - } - - if (direction === DIR_RTL) { - style = { marginRight: marginValue } - } - - return style - } - - return ( - <> - {larger.md && ( -
- -
- {!isEmpty(selectedMenu) && ( - - )} -
-
+ return ( + <> + {larger.md && ( +
+ +
+ {!isEmpty(selectedMenu) && ( + )} - - ) +
+
+ )} + + ) } export default StackedSideNav diff --git a/ui/src/components/template/VerticalMenuContent/VerticalCollapsedMenuItem.tsx b/ui/src/components/template/VerticalMenuContent/VerticalCollapsedMenuItem.tsx index 06b024f5..167d397f 100644 --- a/ui/src/components/template/VerticalMenuContent/VerticalCollapsedMenuItem.tsx +++ b/ui/src/components/template/VerticalMenuContent/VerticalCollapsedMenuItem.tsx @@ -4,7 +4,6 @@ import type { Direction } from '@/@types/theme' import { PermissionCheck } from '@/components/shared' import Dropdown from '@/components/ui/Dropdown' import Menu from '@/components/ui/Menu' -import { Trans } from 'react-i18next' import { Link } from 'react-router-dom' import VerticalMenuIcon from './VerticalMenuIcon' @@ -33,9 +32,7 @@ const DefaultItem = ({ nav, onLinkClick }: DefaultItemProps) => { label={ <> - - - + {nav.title} } eventKey={nav.key} @@ -56,16 +53,12 @@ const DefaultItem = ({ nav, onLinkClick }: DefaultItemProps) => { path: subNav.path, }) } - target={subNav.isExternalLink ? '_blank' : ''} + target={subNav.isExternalLink ? '_blank' : ''} > - - - + {nav.title} ) : ( - - - + {nav.title} )} @@ -103,16 +96,12 @@ const CollapsedItem = ({ nav, onLinkClick, direction }: CollapsedItemProps) => { path: subNav.path, }) } - target={subNav.isExternalLink ? '_blank' : ''} + target={subNav.isExternalLink ? '_blank' : ''} > - - - + {subNav.title} ) : ( - - - + {subNav.title} )} diff --git a/ui/src/components/template/VerticalMenuContent/VerticalMenuContent.tsx b/ui/src/components/template/VerticalMenuContent/VerticalMenuContent.tsx index 62923b40..4ce2cda9 100644 --- a/ui/src/components/template/VerticalMenuContent/VerticalMenuContent.tsx +++ b/ui/src/components/template/VerticalMenuContent/VerticalMenuContent.tsx @@ -10,7 +10,6 @@ import { } from '@/constants/navigation.constant' import useMenuActive from '@/utils/hooks/useMenuActive' import { useEffect, useState } from 'react' -import { Trans, useTranslation } from 'react-i18next' import { Link, useLocation } from 'react-router-dom' import VerticalCollapsedMenuItem from './VerticalCollapsedMenuItem' import VerticalSingleMenuItem from './VerticalSingleMenuItem' @@ -42,9 +41,6 @@ const VerticalMenuContent = (props: VerticalMenuContentProps) => { onMenuItemClick, direction = themeConfig.direction, } = props - - const { t } = useTranslation() - const [defaultExpandedKeys, setDefaultExpandedKeys] = useState([]) const [defaultActiveKeys, setDefaultActiveKeys] = useState([]) @@ -105,9 +101,7 @@ const VerticalMenuContent = (props: VerticalMenuContentProps) => { label={ <> - - - + {nav.title} } eventKey={nav.key} diff --git a/ui/src/components/template/VerticalMenuContent/VerticalSingleMenuItem.tsx b/ui/src/components/template/VerticalMenuContent/VerticalSingleMenuItem.tsx index 2e9ac716..66f87635 100644 --- a/ui/src/components/template/VerticalMenuContent/VerticalSingleMenuItem.tsx +++ b/ui/src/components/template/VerticalMenuContent/VerticalSingleMenuItem.tsx @@ -2,7 +2,6 @@ import Tooltip from '@/components/ui/Tooltip' import Menu from '@/components/ui/Menu' import VerticalMenuIcon from './VerticalMenuIcon' import { Link } from 'react-router-dom' -import { Trans, useTranslation } from 'react-i18next' import type { CommonProps } from '@/@types/common' import type { Direction } from '@/@types/theme' import type { NavigationTree } from '@/@types/navigation' @@ -27,10 +26,8 @@ interface DefaultItemProps { interface VerticalMenuItemProps extends CollapsedItemProps, DefaultItemProps {} const CollapsedItem = ({ title, translateKey, children, direction }: CollapsedItemProps) => { - const { t } = useTranslation() - return ( - + {children} ) @@ -52,14 +49,10 @@ const DefaultItem = (props: DefaultItemProps) => { path: nav.path, }) } - target={nav.isExternalLink ? '_blank' : ''} + target={nav.isExternalLink ? '_blank' : ''} > - {!sideCollapsed && ( - - - - )} + {!sideCollapsed && {nav.title}} diff --git a/ui/src/locales/locales.ts b/ui/src/constants/dateLocales.constant.ts similarity index 62% rename from ui/src/locales/locales.ts rename to ui/src/constants/dateLocales.constant.ts index b80ae22f..f729fd07 100644 --- a/ui/src/locales/locales.ts +++ b/ui/src/constants/dateLocales.constant.ts @@ -1,24 +1,3 @@ -// eslint-disable-next-line import/no-named-as-default -import i18n from 'i18next' -import { initReactI18next } from 'react-i18next' -import en from './lang/en.json' -import appConfig from '@/configs/app.config' - -const resources = { - en: { - translation: en, - }, -} - -i18n.use(initReactI18next).init({ - resources, - fallbackLng: appConfig.locale, - lng: appConfig.locale, - interpolation: { - escapeValue: false, - }, -}) - export const dateLocales: { [key: string]: () => Promise } = { @@ -40,5 +19,3 @@ export const dateLocales: { tr: () => import('dayjs/locale/tr'), zh: () => import('dayjs/locale/zh'), } - -export default i18n diff --git a/ui/src/locales/index.ts b/ui/src/locales/index.ts deleted file mode 100644 index 44413167..00000000 --- a/ui/src/locales/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import i18n from './locales' - -export { dateLocales } from './locales' -export default i18n diff --git a/ui/src/locales/lang/en.json b/ui/src/locales/lang/en.json deleted file mode 100644 index 6a08ffcb..00000000 --- a/ui/src/locales/lang/en.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "nav": { - "home": "Home", - "singleMenuItem": "Single menu item", - "collapseMenu": { - "collapseMenu": "Collapse menu item", - "item1": "Collapse menu item 1", - "item2": "Collapse menu item 2" - }, - "groupMenu": { - "groupMenu": "Group menu", - "single": "Group single menu item", - "collapse": { - "collapse": "Group collapse menu", - "item1": "Group collapse menu item 1", - "item2": "Group collapse menu item 2" - } - } - } -} diff --git a/ui/src/proxy/charts/models.ts b/ui/src/proxy/charts/models.ts index 05b5d01e..aebeb953 100644 --- a/ui/src/proxy/charts/models.ts +++ b/ui/src/proxy/charts/models.ts @@ -1,5 +1,5 @@ import { AuditedEntityDto } from '@/proxy/abp' -import { PermissionCrudDto } from '@/proxy/form' +import { PermissionCrudDto } from '../form/models' export interface BreakDto { endValue: number diff --git a/ui/src/routes/dynamicRouteLoader.tsx b/ui/src/routes/dynamicRouteLoader.tsx index 3c5a30f1..f2446f00 100644 --- a/ui/src/routes/dynamicRouteLoader.tsx +++ b/ui/src/routes/dynamicRouteLoader.tsx @@ -1,4 +1,4 @@ -import { RouteDto } from '@/proxy/routes' +import { RouteDto } from '@/proxy/routes/models' import { lazy } from 'react' // Tüm view bileşenlerini import et (vite özel) @@ -27,11 +27,11 @@ export function loadComponent(componentPath: string) { // React Router için uygun bir route tipi export interface DynamicReactRoute { - key: string; - path: string; - getComponent: () => React.LazyExoticComponent>; - routeType: string; - authority?: string[]; + key: string + path: string + getComponent: () => React.LazyExoticComponent> + routeType: string + authority?: string[] } // API'den gelen route objesini, React Router için uygun hale getirir @@ -42,5 +42,5 @@ export function mapDynamicRoutes(routes: RouteDto[]): DynamicReactRoute[] { getComponent: () => loadComponent(route.componentPath), routeType: route.routeType, authority: route.authority, - })); + })) } diff --git a/ui/src/routes/dynamicRoutesContext.tsx b/ui/src/routes/dynamicRoutesContext.tsx index bebd955e..6215b6a7 100644 --- a/ui/src/routes/dynamicRoutesContext.tsx +++ b/ui/src/routes/dynamicRoutesContext.tsx @@ -1,4 +1,4 @@ -import { RouteDto } from '@/proxy/routes' +import { RouteDto } from '@/proxy/routes/models' import React, { createContext, useContext, useEffect, useState } from 'react' import { useStoreState } from '@/store/store' @@ -30,7 +30,7 @@ export const DynamicRoutesProvider: React.FC<{ children: React.ReactNode }> = ({ try { // Get routes from extraProperties instead of API call const configRoutes = extraProperties?.routes as RouteDto[] - + if (configRoutes && Array.isArray(configRoutes)) { setRoutes(configRoutes) } else { diff --git a/ui/src/services/account.service.ts b/ui/src/services/account.service.ts index 34e7064b..90727b66 100644 --- a/ui/src/services/account.service.ts +++ b/ui/src/services/account.service.ts @@ -1,7 +1,7 @@ import { AxiosError } from 'axios' import { SignUpCredential, SignUpResponse } from '../@types/auth' import apiService from './api.service' -import { ProfileDto, UpdateProfileDto } from '../proxy/account' +import { ProfileDto, UpdateProfileDto } from '@/proxy/account/models' export const register = (data: SignUpCredential) => apiService.fetchData({ diff --git a/ui/src/services/admin/list-form-customization.service.ts b/ui/src/services/admin/list-form-customization.service.ts index ae8377ba..570cc8ee 100644 --- a/ui/src/services/admin/list-form-customization.service.ts +++ b/ui/src/services/admin/list-form-customization.service.ts @@ -1,6 +1,6 @@ import { ListResultDto } from '../../proxy' import { ListFormCustomizationRequestDto } from '../../proxy/admin/list-form-customization/models' -import { ListFormCustomizationDto } from '../../proxy/form' +import { ListFormCustomizationDto } from '../../proxy/form/models' import apiService from '../api.service' export const getListFormCustomizations = (input: ListFormCustomizationRequestDto) => diff --git a/ui/src/services/admin/list-form.service.ts b/ui/src/services/admin/list-form.service.ts index b880b25a..7310f18c 100644 --- a/ui/src/services/admin/list-form.service.ts +++ b/ui/src/services/admin/list-form.service.ts @@ -1,5 +1,5 @@ import { ListFormJsonRowDto, ListFormWizardDto } from '../../proxy/admin/list-form/models' -import { FieldsDefaultValueDto, GridOptionsEditDto } from '../../proxy/form' +import { FieldsDefaultValueDto, GridOptionsEditDto } from '../../proxy/form/models' import apiService from '../api.service' export const postListFormWizard = (input: ListFormWizardDto) => diff --git a/ui/src/services/ai.service.ts b/ui/src/services/ai.service.ts index 8366efa7..41d0afab 100644 --- a/ui/src/services/ai.service.ts +++ b/ui/src/services/ai.service.ts @@ -1,5 +1,5 @@ +import { AiDto } from '@/proxy/ai/models' import { PagedAndSortedResultRequestDto, PagedResultDto } from '../proxy' -import { AiDto } from '../proxy/ai' import apiService, { Config } from './api.service' export class AiService { diff --git a/ui/src/services/form.service.ts b/ui/src/services/form.service.ts index 4f407bbf..ce3449f8 100644 --- a/ui/src/services/form.service.ts +++ b/ui/src/services/form.service.ts @@ -1,6 +1,6 @@ import { AxiosError, Method } from 'axios' import { URLSearchParams } from 'url' -import { GridDto } from '../proxy/form' +import { GridDto } from '../proxy/form/models' import apiService from './api.service' export const getList = (data: Record) => { diff --git a/ui/src/services/identity.service.ts b/ui/src/services/identity.service.ts index 984135e7..9f4236b4 100644 --- a/ui/src/services/identity.service.ts +++ b/ui/src/services/identity.service.ts @@ -1,4 +1,3 @@ -import { ListResultDto } from '../proxy' import { GetPermissionListResultDto, IdentityRoleDto, @@ -7,7 +6,8 @@ import { UpdatePermissionsDto, UserClaimModel, UserInfoViewModel, -} from '../proxy/admin' +} from '@/proxy/admin/models' +import { ListResultDto } from '../proxy' import { AuditLogDto } from '../proxy/auditLog/audit-log' import apiService from './api.service' diff --git a/ui/src/services/import.service.ts b/ui/src/services/import.service.ts index 3cbf551c..d350770a 100644 --- a/ui/src/services/import.service.ts +++ b/ui/src/services/import.service.ts @@ -1,4 +1,4 @@ -import { GridDto } from '@/proxy/form' +import { GridDto } from '@/proxy/form/models' import { ImportPreviewData, ListFormImportDto, @@ -177,7 +177,10 @@ ${headers } }) - await this.updateSession(sessionId, { totalRows: rows.length, listFormCode: gridDto?.gridOptions.listFormCode || '' }) + await this.updateSession(sessionId, { + totalRows: rows.length, + listFormCode: gridDto?.gridOptions.listFormCode || '', + }) return { sessionId, diff --git a/ui/src/services/list-form-customization.service.ts b/ui/src/services/list-form-customization.service.ts index ed2b7abe..1b21a3bc 100644 --- a/ui/src/services/list-form-customization.service.ts +++ b/ui/src/services/list-form-customization.service.ts @@ -2,7 +2,7 @@ import { ListFormCustomizationDto, ListFormCustomizationForUserDto, ListFormCustomizationTypeEnum, -} from '../proxy/form' +} from '../proxy/form/models' import apiService from './api.service' export const getListFormCustomization = ( diff --git a/ui/src/services/organization-unit.service.ts b/ui/src/services/organization-unit.service.ts index fad586af..96229a66 100644 --- a/ui/src/services/organization-unit.service.ts +++ b/ui/src/services/organization-unit.service.ts @@ -1,5 +1,5 @@ +import { IdentityRoleDto, IdentityUserDto } from '@/proxy/admin/models' import { ListResultDto, PagedResultDto } from '../proxy' -import { IdentityRoleDto, IdentityUserDto } from '../proxy/admin' import { CreateUpdateOrganizationUnitDto, OrganizationUnitDto, diff --git a/ui/src/services/route.service.ts b/ui/src/services/route.service.ts index 1a5c4f91..2a842046 100644 --- a/ui/src/services/route.service.ts +++ b/ui/src/services/route.service.ts @@ -1,4 +1,4 @@ -import { RouteDto } from '@/proxy/routes' +import { RouteDto } from '@/proxy/routes/models' import apiService, { Config } from '@/services/api.service' export class RouteService { diff --git a/ui/src/services/setting-ui.service.ts b/ui/src/services/setting-ui.service.ts index 7213cdb4..6a424416 100644 --- a/ui/src/services/setting-ui.service.ts +++ b/ui/src/services/setting-ui.service.ts @@ -1,6 +1,6 @@ import { AxiosError } from 'axios' -import { MainGroupedSettingDto } from '../proxy/settings' import apiService from './api.service' +import { MainGroupedSettingDto } from '@/proxy/settings/models' export const getList = () => apiService.fetchData({ diff --git a/ui/src/services/tenants.ts b/ui/src/services/tenants.ts index 05c74512..7d142e95 100644 --- a/ui/src/services/tenants.ts +++ b/ui/src/services/tenants.ts @@ -1,35 +1,24 @@ // scripts/tenant.ts +import axios from 'axios' +import https from 'https' + export type TenantDto = { name: string } export type PagedResultDto = { totalCount: number; items: T[] } -if (process.env.NODE_ENV === 'development') { - process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' -} - export async function fetchTenantNames(apiUrl: string): Promise { try { const url = `${apiUrl.replace(/\/$/, '')}/api/app/platform-tenant?skipCount=0&maxResultCount=1000` + const isLocalHttps = /^https:\/\/localhost(:\d+)?/i.test(apiUrl) - const response = await fetch(url, { + const response = await axios.get>(url, { headers: { Accept: 'application/json', 'X-Requested-With': 'XMLHttpRequest', }, + httpsAgent: isLocalHttps ? new https.Agent({ rejectUnauthorized: false }) : undefined, }) - if (!response.ok) { - console.error('[vite] Tenant API hatası:', response.status, response.statusText) - return [] - } - - const data = (await response.json()) as PagedResultDto - return (data.items ?? []) - .map((t) => - String(t?.name || '') - .trim() - .toLowerCase(), - ) - .filter(Boolean) + return (response.data.items ?? []).map((t: TenantDto) => t.name.trim().toLowerCase()) } catch (e) { console.error('[vite] Tenant listesi alınamadı:', e) return [] diff --git a/ui/src/utils/hooks/useLocale.ts b/ui/src/utils/hooks/useLocale.ts index ee313e55..abcea2d3 100644 --- a/ui/src/utils/hooks/useLocale.ts +++ b/ui/src/utils/hooks/useLocale.ts @@ -1,10 +1,7 @@ import { useEffect } from 'react' -// eslint-disable-next-line import/no-named-as-default -import i18n from 'i18next' import dayjs from 'dayjs' -import { dateLocales } from '@/locales' import { useStoreState } from '@/store' -import { locale } from 'devextreme/localization' +import { dateLocales } from '@/constants/dateLocales.constant' function useLocale() { const cultureName = useStoreState((state) => state.locale.currentLang) @@ -14,10 +11,6 @@ function useLocale() { )?.twoLetterISOLanguageName useEffect(() => { - if (cultureName !== i18n.language) { - i18n.changeLanguage(cultureName) - locale(twoLetterISOLanguageName ?? cultureName) - } if (cultureName && twoLetterISOLanguageName && dateLocales[twoLetterISOLanguageName]) { dateLocales[twoLetterISOLanguageName]().then(() => { dayjs.locale(cultureName) diff --git a/ui/src/views/admin/listForm/edit/json-row-operations/types.ts b/ui/src/views/admin/listForm/edit/json-row-operations/types.ts index a50e786c..c6da561a 100644 --- a/ui/src/views/admin/listForm/edit/json-row-operations/types.ts +++ b/ui/src/views/admin/listForm/edit/json-row-operations/types.ts @@ -1,5 +1,10 @@ import { ListFormEditTabs } from '@/proxy/admin/list-form/models' -import { CommandColumnDto, EditingFormDto, FieldsDefaultValueDto, SubFormDto } from '@/proxy/form' +import { + CommandColumnDto, + EditingFormDto, + FieldsDefaultValueDto, + SubFormDto, +} from '@/proxy/form/models' import { ExtractNestedValues } from '@/utils/extractNestedValues' export type JsonRowOperation = 'create' | 'update' | 'delete' diff --git a/ui/src/views/form/SubForms.tsx b/ui/src/views/form/SubForms.tsx index 3d69e362..708d39b4 100644 --- a/ui/src/views/form/SubForms.tsx +++ b/ui/src/views/form/SubForms.tsx @@ -6,11 +6,11 @@ import { useEffect, useState } from 'react' import { MdBarChart, MdList } from 'react-icons/md' import { useLocation, useNavigate } from 'react-router-dom' import Grid from '../list/Grid' +import Chart from '../chart/Chart' +import { GridDto, SubFormDto, SubFormTabTypeEnum } from '@/proxy/form/models' import FormEdit from './FormEdit' import FormNew from './FormNew' import FormView from './FormView' -import Chart from '../chart/Chart' -import { GridDto, SubFormDto, SubFormTabTypeEnum } from '@/proxy/form/models' const SubForms = (props: { gridDto: GridDto diff --git a/ui/src/views/form/editors/GridBoxEditorComponent.tsx b/ui/src/views/form/editors/GridBoxEditorComponent.tsx index e6e5a737..ec63e106 100644 --- a/ui/src/views/form/editors/GridBoxEditorComponent.tsx +++ b/ui/src/views/form/editors/GridBoxEditorComponent.tsx @@ -1,4 +1,4 @@ -import { GridBoxOptionsDto } from '@/proxy/form' +import { GridBoxOptionsDto } from '@/proxy/form/models' import { GridColumnData } from '@/views/list/GridColumnData' import { Button } from 'devextreme-react/button' import DataGrid from 'devextreme-react/data-grid' diff --git a/ui/src/views/form/editors/TagBoxEditorComponent.tsx b/ui/src/views/form/editors/TagBoxEditorComponent.tsx index 245d2e2d..cf1f9532 100644 --- a/ui/src/views/form/editors/TagBoxEditorComponent.tsx +++ b/ui/src/views/form/editors/TagBoxEditorComponent.tsx @@ -1,4 +1,4 @@ -import { TagBoxOptionsDto } from '@/proxy/form' +import { TagBoxOptionsDto } from '@/proxy/form/models' import { GridColumnData } from '@/views/list/GridColumnData' import TagBox from 'devextreme-react/tag-box' import { ApplyValueMode } from 'devextreme/common' diff --git a/ui/src/views/form/types.ts b/ui/src/views/form/types.ts index 44d9d8d3..c528dec1 100644 --- a/ui/src/views/form/types.ts +++ b/ui/src/views/form/types.ts @@ -2,7 +2,7 @@ import { FormItemComponent, SimpleItem } from 'devextreme/ui/form' import { GridColumnData } from '../list/GridColumnData' import { Overwrite } from '../../utils/types' import { GridBoxOptionsDto, PlatformEditorTypes, TagBoxOptionsDto } from '../../proxy/form/models' -import { Meta } from 'easy-peasy' +import { Meta } from '@/@types/routes' export type EditorType2 = FormItemComponent | PlatformEditorTypes.dxGridBox export type SimpleItemWithColData = Overwrite< diff --git a/ui/src/views/forum/admin/PostManagement.tsx b/ui/src/views/forum/admin/PostManagement.tsx index f8ab47bd..02e4394f 100644 --- a/ui/src/views/forum/admin/PostManagement.tsx +++ b/ui/src/views/forum/admin/PostManagement.tsx @@ -402,8 +402,7 @@ export function PostManagement({ setPostToDelete(null) } }} - > - + > )} ) diff --git a/ui/src/views/index.ts b/ui/src/views/index.ts new file mode 100644 index 00000000..6d75b4ae --- /dev/null +++ b/ui/src/views/index.ts @@ -0,0 +1,3 @@ +import Views from './Views' + +export default Views