diff --git a/single-locale-without-i18n/package.json b/single-locale-without-i18n/package.json
index 8382de1..0a6af66 100644
--- a/single-locale-without-i18n/package.json
+++ b/single-locale-without-i18n/package.json
@@ -30,31 +30,28 @@
"lint": "eslint . --no-cache"
},
"dependencies": {
- "@slickgrid-universal/composite-editor-component": "^9.13.0",
- "@slickgrid-universal/custom-tooltip-plugin": "^9.13.0",
- "@slickgrid-universal/excel-export": "^9.13.0",
- "@slickgrid-universal/graphql": "^9.13.0",
- "@slickgrid-universal/odata": "^9.13.0",
- "@slickgrid-universal/pdf-export": "^9.13.0",
- "@slickgrid-universal/rxjs-observable": "^9.13.0",
- "@slickgrid-universal/text-export": "^9.13.0",
+ "@slickgrid-universal/composite-editor-component": "^10.0.0-beta.0",
+ "@slickgrid-universal/custom-tooltip-plugin": "^10.0.0-beta.0",
+ "@slickgrid-universal/excel-export": "^10.0.0-beta.0",
+ "@slickgrid-universal/rxjs-observable": "^10.0.0-beta.0",
+ "@slickgrid-universal/text-export": "^10.0.0-beta.0",
"bootstrap": "^5.3.8",
"dompurify": "^3.3.1",
"react": "^19.2.4",
"react-dom": "^19.2.4",
- "slickgrid-react": "^9.13.0"
+ "slickgrid-react": "^10.0.0-beta.0"
},
"devDependencies": {
- "@faker-js/faker": "^10.2.0",
+ "@faker-js/faker": "^10.3.0",
"@fnando/sparkline": "^0.3.10",
"@popperjs/core": "^2.11.8",
"@types/fnando__sparkline": "^0.3.7",
- "@types/node": "^24.10.9",
- "@types/react": "^19.2.10",
+ "@types/node": "^24.10.13",
+ "@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/sortablejs": "^1.15.9",
"@types/text-encoding-utf-8": "^1.0.5",
- "@vitejs/plugin-react": "^5.1.2",
+ "@vitejs/plugin-react": "^5.1.4",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint-plugin-import": "^2.32.0",
@@ -62,15 +59,15 @@
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
- "globals": "^17.2.0",
+ "globals": "^17.3.0",
"react-router-dom": "^7.13.0",
"rxjs": "^7.8.2",
"sass": "^1.97.3",
"typescript": "^5.9.3",
- "typescript-eslint": "^8.54.0",
+ "typescript-eslint": "^8.55.0",
"vite": "^7.3.1",
"vite-plugin-svgr": "^4.5.0",
- "vite-tsconfig-paths": "^6.0.5"
+ "vite-tsconfig-paths": "^6.1.1"
},
"engines": {
"node": ">=20.0.0"
diff --git a/single-locale-without-i18n/src/examples/slickgrid/Example2.tsx b/single-locale-without-i18n/src/examples/slickgrid/Example2.tsx
index 90026d8..89a7ad2 100644
--- a/single-locale-without-i18n/src/examples/slickgrid/Example2.tsx
+++ b/single-locale-without-i18n/src/examples/slickgrid/Example2.tsx
@@ -2,7 +2,6 @@ import { ExcelExportService } from '@slickgrid-universal/excel-export';
import { TextExportService } from '@slickgrid-universal/text-export';
import React, { useEffect, useRef, useState } from 'react';
import {
- DelimiterType,
Filters,
Formatters,
SlickgridReact,
@@ -81,7 +80,7 @@ const Example2: React.FC = () => {
const gridOptions: GridOption = {
autoResize: {
container: '#demo-container',
- rightPadding: 10
+ rightPadding: 10,
},
// use a Single Custom Locales set
locale: 'fr', // this helps certain elements to know which locale to use, for example the Date Filter/Editor
@@ -92,10 +91,10 @@ const Example2: React.FC = () => {
checkboxSelector: {
// you can toggle these 2 properties to show the "select all" checkbox in different location
hideInFilterHeaderRow: false,
- hideInColumnTitleRow: true
+ hideInColumnTitleRow: true,
},
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
showCustomFooter: true, // display some metrics in the bottom custom footer
customFooterOptions: {
// optionally display some text on the left footer container
@@ -142,7 +141,7 @@ const Example2: React.FC = () => {
textExportOptions: {
// set at the grid option level, meaning all column will evaluate the Formatter (when it has a Formatter defined)
exportWithFormatter: true,
- sanitizeDataExport: true
+ sanitizeDataExport: true,
},
externalResources: [excelExportService, textExportService],
};
@@ -209,7 +208,7 @@ const Example2: React.FC = () => {
function exportToFile(type = 'csv') {
textExportService.exportToFile({
- delimiter: type === 'csv' ? DelimiterType.comma : DelimiterType.tab,
+ delimiter: type === 'csv' ? ',' : '\t',
filename: 'myExport',
format: type === 'csv' ? 'csv' : 'txt',
});
@@ -235,8 +234,6 @@ const Example2: React.FC = () => {
Example 2: Localization with Locales - French Locale displayed
-
-
{
+
{
gridHeight: 225,
gridWidth: 800,
rowHeight: 33,
- enableHybridSelection: true,
- rowSelectionOptions: {
+ enableSelection: true,
+ selectionOptions: {
selectionType: 'row',
},
};
diff --git a/single-locale-without-i18n/src/examples/slickgrid/locales/fr.ts b/single-locale-without-i18n/src/examples/slickgrid/locales/fr.ts
index 3777060..b03669e 100644
--- a/single-locale-without-i18n/src/examples/slickgrid/locales/fr.ts
+++ b/single-locale-without-i18n/src/examples/slickgrid/locales/fr.ts
@@ -6,6 +6,7 @@ export const localeFrench = {
TEXT_CLEAR_ALL_SORTING: 'Supprimer tous les tris',
TEXT_COLLAPSE_ALL_GROUPS: 'Réduire tous les groupes',
TEXT_COLUMNS: 'Colonnes',
+ TEXT_COLUMN_RESIZE_BY_CONTENT: 'Redimensionner par contenu',
TEXT_COMMANDS: 'Commandes',
TEXT_CONTAINS: 'Contient',
TEXT_COPY: 'Copier',
diff --git a/single-locale-without-i18n/yarn.lock b/single-locale-without-i18n/yarn.lock
index 2bc26b1..5f43054 100644
--- a/single-locale-without-i18n/yarn.lock
+++ b/single-locale-without-i18n/yarn.lock
@@ -39,6 +39,15 @@
js-tokens "^4.0.0"
picocolors "^1.1.1"
+"@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c"
+ integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.28.5"
+ js-tokens "^4.0.0"
+ picocolors "^1.1.1"
+
"@babel/compat-data@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.7.tgz#b8479fe0018ef0ac87b6b7a5c6916fcd67ae2c9c"
@@ -49,6 +58,11 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.5.tgz#7d0658ec1a8420fc866d1df1b03bea0e79934c82"
integrity sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==
+"@babel/compat-data@^7.28.6":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d"
+ integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==
+
"@babel/core@^7.21.3":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.7.tgz#1b3d144157575daf132a3bc80b2b18e6e3ca6ece"
@@ -70,7 +84,7 @@
json5 "^2.2.3"
semver "^6.3.1"
-"@babel/core@^7.24.4", "@babel/core@^7.28.5":
+"@babel/core@^7.24.4":
version "7.28.5"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e"
integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==
@@ -91,6 +105,27 @@
json5 "^2.2.3"
semver "^6.3.1"
+"@babel/core@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322"
+ integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==
+ dependencies:
+ "@babel/code-frame" "^7.29.0"
+ "@babel/generator" "^7.29.0"
+ "@babel/helper-compilation-targets" "^7.28.6"
+ "@babel/helper-module-transforms" "^7.28.6"
+ "@babel/helpers" "^7.28.6"
+ "@babel/parser" "^7.29.0"
+ "@babel/template" "^7.28.6"
+ "@babel/traverse" "^7.29.0"
+ "@babel/types" "^7.29.0"
+ "@jridgewell/remapping" "^2.3.5"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
"@babel/generator@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.7.tgz#de86acbeb975a3e11ee92dd52223e6b03b479c56"
@@ -134,6 +169,17 @@
"@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
+"@babel/generator@^7.29.0":
+ version "7.29.1"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50"
+ integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==
+ dependencies:
+ "@babel/parser" "^7.29.0"
+ "@babel/types" "^7.29.0"
+ "@jridgewell/gen-mapping" "^0.3.12"
+ "@jridgewell/trace-mapping" "^0.3.28"
+ jsesc "^3.0.2"
+
"@babel/helper-compilation-targets@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz#11260ac3322dda0ef53edfae6e97b961449f5fa4"
@@ -156,6 +202,17 @@
lru-cache "^5.1.1"
semver "^6.3.1"
+"@babel/helper-compilation-targets@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25"
+ integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==
+ dependencies:
+ "@babel/compat-data" "^7.28.6"
+ "@babel/helper-validator-option" "^7.27.1"
+ browserslist "^4.24.0"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
"@babel/helper-globals@^7.28.0":
version "7.28.0"
resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674"
@@ -177,6 +234,14 @@
"@babel/traverse" "^7.27.1"
"@babel/types" "^7.27.1"
+"@babel/helper-module-imports@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c"
+ integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==
+ dependencies:
+ "@babel/traverse" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
"@babel/helper-module-transforms@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz#2ac9372c5e001b19bc62f1fe7d96a18cb0901d1a"
@@ -196,6 +261,15 @@
"@babel/helper-validator-identifier" "^7.27.1"
"@babel/traverse" "^7.28.3"
+"@babel/helper-module-transforms@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e"
+ integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.28.6"
+ "@babel/helper-validator-identifier" "^7.28.5"
+ "@babel/traverse" "^7.28.6"
+
"@babel/helper-plugin-utils@^7.27.1":
version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c"
@@ -265,6 +339,14 @@
"@babel/template" "^7.27.2"
"@babel/types" "^7.28.4"
+"@babel/helpers@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7"
+ integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==
+ dependencies:
+ "@babel/template" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
"@babel/highlight@^7.18.6":
version "7.18.6"
resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
@@ -312,6 +394,13 @@
dependencies:
"@babel/types" "^7.28.2"
+"@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6"
+ integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==
+ dependencies:
+ "@babel/types" "^7.29.0"
+
"@babel/plugin-transform-react-jsx-self@^7.27.1":
version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz#af678d8506acf52c577cac73ff7fe6615c85fc92"
@@ -326,16 +415,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.27.1"
-"@babel/runtime@^7.12.5":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.6.tgz#d267a43cb1836dc4d182cce93ae75ba954ef6d2b"
- integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==
-
-"@babel/runtime@^7.28.4":
- version "7.28.4"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326"
- integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
-
"@babel/template@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.7.tgz#27f69ce382855d915b14ab0fe5fb4cbf88fa0769"
@@ -354,6 +433,15 @@
"@babel/parser" "^7.27.2"
"@babel/types" "^7.27.1"
+"@babel/template@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57"
+ integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==
+ dependencies:
+ "@babel/code-frame" "^7.28.6"
+ "@babel/parser" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
"@babel/traverse@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8"
@@ -406,6 +494,19 @@
"@babel/types" "^7.28.5"
debug "^4.3.1"
+"@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a"
+ integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==
+ dependencies:
+ "@babel/code-frame" "^7.29.0"
+ "@babel/generator" "^7.29.0"
+ "@babel/helper-globals" "^7.28.0"
+ "@babel/parser" "^7.29.0"
+ "@babel/template" "^7.28.6"
+ "@babel/types" "^7.29.0"
+ debug "^4.3.1"
+
"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b"
@@ -447,6 +548,14 @@
"@babel/helper-string-parser" "^7.27.1"
"@babel/helper-validator-identifier" "^7.28.5"
+"@babel/types@^7.28.6", "@babel/types@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7"
+ integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==
+ dependencies:
+ "@babel/helper-string-parser" "^7.27.1"
+ "@babel/helper-validator-identifier" "^7.28.5"
+
"@epic-web/invariant@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@epic-web/invariant/-/invariant-1.0.0.tgz#1073e5dee6dd540410784990eb73e4acd25c9813"
@@ -681,17 +790,17 @@
"@eslint/core" "^0.17.0"
levn "^0.4.1"
-"@excel-builder-vanilla/types@^4.2.1":
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/@excel-builder-vanilla/types/-/types-4.2.1.tgz#663e913bb88087bde5bf42f0f8be9d1bd2762bfd"
- integrity sha512-AtVzHKfH7TtRTH7Yczwu6SMXYhmvO+W6H2L4ktg7JesK4cHSS7FinzFk+zkPWs2ROZEXYHLZxJTGY7OrhiOTjw==
+"@excel-builder-vanilla/types@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@excel-builder-vanilla/types/-/types-5.0.0.tgz#5c5ab00a13baa8a9d49ff4d5442c98db70f07311"
+ integrity sha512-k0qMo9+velvx2EJne0gwT1NacDRCIWdCHpwTu5hjuRKrr1BzKCiTqgBKUf9zL74HIU7dejoWl3wgguWrccTFXg==
dependencies:
fflate "^0.8.2"
-"@faker-js/faker@^10.2.0":
- version "10.2.0"
- resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-10.2.0.tgz#91028d4086969825795de331c305e8b91414bcb7"
- integrity sha512-rTXwAsIxpCqzUnZvrxVh3L0QA0NzToqWBLAhV+zDV3MIIwiQhAZHMdPCIaj5n/yADu/tyk12wIPgL6YHGXJP+g==
+"@faker-js/faker@^10.3.0":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-10.3.0.tgz#d56b68e4f1dd090152029fe91d2f8505389947f2"
+ integrity sha512-It0Sne6P3szg7JIi6CgKbvTZoMjxBZhcv91ZrqrNuaZQfB5WoqYYbzCUOq89YR+VY8juY9M1vDWmDDa2TzfXCw==
"@fnando/sparkline@^0.3.10":
version "0.3.10"
@@ -912,10 +1021,10 @@
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
-"@rolldown/pluginutils@1.0.0-beta.53":
- version "1.0.0-beta.53"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz#c57a5234ae122671aff6fe72e673a7ed90f03f87"
- integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==
+"@rolldown/pluginutils@1.0.0-rc.3":
+ version "1.0.0-rc.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz#8a88cc92a0f741befc7bc109cb1a4c6b9408e1c5"
+ integrity sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==
"@rollup/pluginutils@^5.2.0":
version "5.3.0"
@@ -1031,142 +1140,109 @@
resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
-"@slickgrid-universal/binding@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/binding/-/binding-9.13.0.tgz#ea4f3c7788d3943efe4f1659cf4ebdd33e3c149a"
- integrity sha512-/3mWCmmekDsW8dXhcaodCgmasD9WMeWNtcD/NKWCYmYERx52EDUOVNxWf8tcpCFlN+eV8smAnTxWGPFZG7Oxaw==
+"@slickgrid-universal/binding@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/binding/-/binding-10.0.0-beta.0.tgz#c88cbc256ead14073b56dd68dc2b9192899efaa2"
+ integrity sha512-Wnm554nAJ/ZtPCc40k0jnFPWiVKKAxlN8uSxMor72xNjF4bUGjx2+lgoEWNDREGSbIT+VjQgiPuREjO0wtOwJg==
-"@slickgrid-universal/common@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/common/-/common-9.13.0.tgz#1063f7cf7b6b95ced61cc0eb9c468894d2905c86"
- integrity sha512-azi6T/xQXFvzehMP3My33jlY2OgjPXf0qjDzqToe/90ijI/JKZQV99o7LUjHpqQAKpPGHpukiPZTV5az3gzvNA==
+"@slickgrid-universal/common@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/common/-/common-10.0.0-beta.0.tgz#90c591c698551aeece5c7a0f6f7951c701f5b978"
+ integrity sha512-3v8yztIrdO2PryD35LQ/EcFHugSHTz74TXR9D81WdjimNTCpKjMjQ2A1hsmStSg9OQX8DdmZgY9NygIpA7PuuQ==
dependencies:
- "@excel-builder-vanilla/types" "^4.2.1"
+ "@excel-builder-vanilla/types" "^5.0.0"
"@formkit/tempo" "^1.0.0"
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/event-pub-sub" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/event-pub-sub" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
"@types/sortablejs" "^1.15.9"
"@types/trusted-types" "^2.0.7"
autocompleter "^9.3.2"
dequal "^2.0.3"
- multiple-select-vanilla "^4.4.1"
- sortablejs "^1.15.6"
+ multiple-select-vanilla "^5.0.0"
+ sortablejs "^1.15.7"
un-flatten-tree "^2.0.12"
vanilla-calendar-pro "^3.1.0"
-"@slickgrid-universal/composite-editor-component@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/composite-editor-component/-/composite-editor-component-9.13.0.tgz#bb3f0a991d9c544d93a1fc75e04eeec542605d95"
- integrity sha512-MbD3dwaQf8z6ZLL2PJ0gu+9eMArQDuuo1cPTr8DuvulcPCzpQSARgp2koicFxUzBiRbpGVjGoqTdiyQbJ+9DAQ==
+"@slickgrid-universal/composite-editor-component@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/composite-editor-component/-/composite-editor-component-10.0.0-beta.0.tgz#cdc7f9f93450c966e3984c35abac30a68d439e2f"
+ integrity sha512-Jgcc5LyMZlB/kCaaOtZ4cZRdMIstAdoBibnT9+l/5nsnDNojX2ZavmuuvbF0jMmSAVwhL0S+DBAL9y9jGluLVg==
dependencies:
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
-"@slickgrid-universal/custom-footer-component@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-footer-component/-/custom-footer-component-9.13.0.tgz#f93d413630f6f69296a63e8b6643d90ec55e7539"
- integrity sha512-8rmWNMNZ+tdyCw8AjgsWwyLZQYjAe22guwWW4F/rzOPHRZdCiUX9b1CeHzPDTZWGS/DSULQuVsxbWME4JDwrrQ==
+"@slickgrid-universal/custom-footer-component@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-footer-component/-/custom-footer-component-10.0.0-beta.0.tgz#dcb35bbb30ee878b49cbc14df09312555ceff352"
+ integrity sha512-OQlLfhCjHvCUP0Cyk95J7zlPyDHM+H+RieyjhLP1XFu/n6wi/ryWSCxzb6QCWPqwRWaKgGAPtd+eJl/Bmx1Zkw==
dependencies:
"@formkit/tempo" "^1.0.0"
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
-
-"@slickgrid-universal/custom-tooltip-plugin@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-tooltip-plugin/-/custom-tooltip-plugin-9.13.0.tgz#fdbd8dc4d428be48a84183a8359255d654eb0c8c"
- integrity sha512-rBWRKpwcSYjFLRESghFKrXvrp7xYhZ27VNtl+wk9jeUpUnL1pWK95OvSMt4KugHQp98vprChmF+OYwJ/rvYdIQ==
- dependencies:
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
-
-"@slickgrid-universal/empty-warning-component@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/empty-warning-component/-/empty-warning-component-9.13.0.tgz#9c045abd78d97a90ac80bef24141869bf973f4f4"
- integrity sha512-11OQYqAFIQ8hKbj4i6Rh1WC9vFjaQqZ75fLSAJeRB+ow7TOa/M7PWP749Jk3A+V8hKhzIF0rNGZ5BZyMJQ5cQw==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
-
-"@slickgrid-universal/event-pub-sub@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/event-pub-sub/-/event-pub-sub-9.13.0.tgz#f221ddd5743143b5d532f00b2fb0a24048332372"
- integrity sha512-PHacS+HbROsiDid4WwA08lC6b8U+fn4NgEPRriG99DAyHTpGuJRCaZyhGkmuhSbUpcZ8IB6g0igcVWWW0c89gw==
- dependencies:
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
-"@slickgrid-universal/excel-export@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/excel-export/-/excel-export-9.13.0.tgz#02f5f8cffb577b3a6350a23f1ad796457f076cee"
- integrity sha512-4AcDVTH+Atz1W2EGWaGtP4syPdza/FUs2mrTutB7/hBeUuDxCp2jXKTACkbYEGpSY3jfdL8JlKXt4R9EtpeO3w==
+"@slickgrid-universal/custom-tooltip-plugin@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-tooltip-plugin/-/custom-tooltip-plugin-10.0.0-beta.0.tgz#b7fd935dcc52687a913690727e4afb9ab6bd0bda"
+ integrity sha512-CkYA3gPcgXmzrrcvHpFkpH/Yg3z2cTF5DCEik7uE9nB9oxo4UijSYTSCaVqsImT5G/zhwNMBORw6vun94KQ4tA==
dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
- excel-builder-vanilla "^4.2.1"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
-"@slickgrid-universal/graphql@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/graphql/-/graphql-9.13.0.tgz#a76f9638adb565ca4f597f79ea3534106769f0ba"
- integrity sha512-eVnWfIFd1KCjqrCHkByV/2s5iXSteZYbTSDM2HAb+lSw9gpLFbjBjBRjkwBgWus5LIgDXVqPXuhOwhWOST263A==
+"@slickgrid-universal/empty-warning-component@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/empty-warning-component/-/empty-warning-component-10.0.0-beta.0.tgz#5f804a5909362e5f89fce76d7dfa5ef742bbfefa"
+ integrity sha512-qMBjdzLnqaOFguMPyuy8GXigotvySDLHunUcVQfsE/8rfOwO2/6PNhHiV99Gqa3joZeM2c/0YD+47bAEYGvqmw==
dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
-"@slickgrid-universal/odata@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/odata/-/odata-9.13.0.tgz#371df1665dbe27f633732b10a819e6047dd2c7ed"
- integrity sha512-u5Eq3kz0fwiDNr6Rm3hIcROKXlfyK97EMhOfFnIYH+D3q1ZI7MrXhcaRNsRcK+hDtvkXxpAkpTBoWID27NAnxg==
+"@slickgrid-universal/event-pub-sub@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/event-pub-sub/-/event-pub-sub-10.0.0-beta.0.tgz#07ce38822de0d36a2d806dbcc2e916e70eb15a1d"
+ integrity sha512-qgmXUHDEL/6TacoJgIInc/KRUjvw/KOmJz6Smv48agQ57/bViPQH3kYhkw7Ls4F6E56B349+SNLJBKsIl/EDfA==
dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
-"@slickgrid-universal/pagination-component@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/pagination-component/-/pagination-component-9.13.0.tgz#acfbf6e77908bf8c8745a8123a02c707f44cec4c"
- integrity sha512-xa4HdrYll1Kd8a6BGFiHcMVnxokf5NlKf86QlxPWzSIcFLLZFCSdCSE1pO9KorPw3mi83BSTh9ykQTCP52QXzw==
+"@slickgrid-universal/excel-export@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/excel-export/-/excel-export-10.0.0-beta.0.tgz#3d57b196878f9962450881740df38fa7fbbf569d"
+ integrity sha512-5JXoz70JlTZ0y5UDv/ejygDs6y7NTFeFA40ali6A3GeClX/X/2wh+XkDF1gTkD+K06J2m47eGmn/jtM3M8wf7w==
dependencies:
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+ excel-builder-vanilla "^5.0.0"
-"@slickgrid-universal/pdf-export@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/pdf-export/-/pdf-export-9.13.0.tgz#49b7f96557b5c0f9c0cf0486bfc66bd551793e6a"
- integrity sha512-Q8UT+4zESiNMmDgQDNR0UX7OMPGz+THiICCb/JKkkUGQjyj+OPzs1TtVkbjPNdgXdk6dOB/EXc46T21TCCWo0Q==
+"@slickgrid-universal/pagination-component@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/pagination-component/-/pagination-component-10.0.0-beta.0.tgz#b49e5e461e8fb70c0183fa2c6c76b97e5002c5f2"
+ integrity sha512-Nm0H91F+9o+wi5EVVSpeedYje6/pRsR7S67iyWkbBizBgn50Okzfl+kwwzKk5mjxvYo95HxTkjwxQH2G4xuPKw==
dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
- jspdf "^4.0.0"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
-"@slickgrid-universal/row-detail-view-plugin@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/row-detail-view-plugin/-/row-detail-view-plugin-9.13.0.tgz#4a78cc66cc8e8d0ced6e830bc34fbab0686430d9"
- integrity sha512-8DvLouWwdqFl2o/4iObUOhpCSYfPHVWbK0lLRBYD7bkQHbWNj5bvI9aQr8QY7bo5OTZcED7D8yG5fSSXKnmx/Q==
+"@slickgrid-universal/rxjs-observable@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/rxjs-observable/-/rxjs-observable-10.0.0-beta.0.tgz#56107e1b2db7d400c00efcc5961a40845e857b7f"
+ integrity sha512-pXgkKGRziMtD+fMSQBAi7Dlr5aPK0PEu1Xb4+MnR55kXg607hzrCgIYBxCjtqEB+FR8UeeROF+TUcHDjgsNs/g==
dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
-
-"@slickgrid-universal/rxjs-observable@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/rxjs-observable/-/rxjs-observable-9.13.0.tgz#2f53e8a3582628207d367ea366086e3bdf9907e7"
- integrity sha512-VntBUxja036QwC4u8TdSetmD1vw6gIt6eswhcteqNdJTTkbsMrVYNH3xPtxESRPE+JMn2fZnd9JMb2uEXs5BoQ==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
rxjs "^7.8.2"
-"@slickgrid-universal/text-export@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/text-export/-/text-export-9.13.0.tgz#42ad1f74d6c631cc8b424a35e9e36e3c205980a4"
- integrity sha512-7G8oEZGXDgvc0sAfJPMqvt7DWIsExSq/pyBTqLdaCZ9K5ytwYy8b4SrluySx2meGWj2PZs2/qo5/RL1ExiVpTw==
+"@slickgrid-universal/text-export@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/text-export/-/text-export-10.0.0-beta.0.tgz#02348336860215c3f338869f84eb42791a55fa08"
+ integrity sha512-xU+yEgXOd6oRmYVo98wCrLnPvNXHKKzvFdWWYR9JkaGV3Omi7WlJ3XEly3AHWY8AGLd0vUAT9uHolr+ugvcmww==
dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
text-encoding-utf-8 "^1.0.2"
-"@slickgrid-universal/utils@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/utils/-/utils-9.13.0.tgz#bb543ca9194388dd6aed4d1c3c9de0d2f9af4193"
- integrity sha512-0zFVPRb4o9B9BDDl2lukz3w3z1SRDAFP9IbXb30pivERBYsg/eRPlo2zTiY2YlUFExAsdlRfmofYbf/b4ytNRQ==
+"@slickgrid-universal/utils@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/utils/-/utils-10.0.0-beta.0.tgz#3f355b8d328b3d0d8b95f38f16bb36bfbfd0fefc"
+ integrity sha512-i0LvHbwYII6+CT1T/M3mxQSg3f5YLFOHWsG29Ssz2HZia4+eKeQMKigk4C9Ka+nPV4qynAE7o+b7w8jwlApDqA==
"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
version "8.0.0"
@@ -1314,32 +1390,22 @@
resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
-"@types/node@^24.10.9":
- version "24.10.9"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.9.tgz#1aeb5142e4a92957489cac12b07f9c7fe26057d0"
- integrity sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==
+"@types/node@^24.10.13":
+ version "24.10.13"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.13.tgz#2fac25c0e30f3848e19912c3b8791a28370e9e07"
+ integrity sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==
dependencies:
undici-types "~7.16.0"
-"@types/pako@^2.0.3":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.4.tgz#c3575ef8125e176c345fa0e7b301c1db41170c15"
- integrity sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==
-
-"@types/raf@^3.4.0":
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.3.tgz#85f1d1d17569b28b8db45e16e996407a56b0ab04"
- integrity sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==
-
"@types/react-dom@^19.2.3":
version "19.2.3"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.2.3.tgz#c1e305d15a52a3e508d54dca770d202cb63abf2c"
integrity sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==
-"@types/react@^19.2.10":
- version "19.2.10"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.10.tgz#f3ea799e6b4cebad6dfd231c238fc9de7652e2d2"
- integrity sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==
+"@types/react@^19.2.14":
+ version "19.2.14"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.14.tgz#39604929b5e3957e3a6fa0001dafb17c7af70bad"
+ integrity sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==
dependencies:
csstype "^3.2.2"
@@ -1358,111 +1424,111 @@
resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz"
integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==
-"@typescript-eslint/eslint-plugin@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.54.0.tgz#d8899e5c2eccf5c4a20d01c036a193753748454d"
- integrity sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==
+"@typescript-eslint/eslint-plugin@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.55.0.tgz#086d2ef661507b561f7b17f62d3179d692a0765f"
+ integrity sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==
dependencies:
"@eslint-community/regexpp" "^4.12.2"
- "@typescript-eslint/scope-manager" "8.54.0"
- "@typescript-eslint/type-utils" "8.54.0"
- "@typescript-eslint/utils" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/scope-manager" "8.55.0"
+ "@typescript-eslint/type-utils" "8.55.0"
+ "@typescript-eslint/utils" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
ignore "^7.0.5"
natural-compare "^1.4.0"
ts-api-utils "^2.4.0"
-"@typescript-eslint/parser@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.54.0.tgz#3d01a6f54ed247deb9982621f70e7abf1810bd97"
- integrity sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==
+"@typescript-eslint/parser@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.55.0.tgz#6eace4e9e95f178d3447ed1f17f3d6a5dfdb345c"
+ integrity sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==
dependencies:
- "@typescript-eslint/scope-manager" "8.54.0"
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/scope-manager" "8.55.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
debug "^4.4.3"
-"@typescript-eslint/project-service@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.54.0.tgz#f582aceb3d752544c8e1b11fea8d95d00cf9adc6"
- integrity sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==
+"@typescript-eslint/project-service@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.55.0.tgz#b8a71c06a625bdad481c24d5614b68e252f3ae9b"
+ integrity sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==
dependencies:
- "@typescript-eslint/tsconfig-utils" "^8.54.0"
- "@typescript-eslint/types" "^8.54.0"
+ "@typescript-eslint/tsconfig-utils" "^8.55.0"
+ "@typescript-eslint/types" "^8.55.0"
debug "^4.4.3"
-"@typescript-eslint/scope-manager@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz#307dc8cbd80157e2772c2d36216857415a71ab33"
- integrity sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==
+"@typescript-eslint/scope-manager@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.55.0.tgz#8a0752c31c788651840dc98f840b0c2ebe143b8c"
+ integrity sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==
dependencies:
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
-"@typescript-eslint/tsconfig-utils@8.54.0", "@typescript-eslint/tsconfig-utils@^8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz#71dd7ba1674bd48b172fc4c85b2f734b0eae3dbc"
- integrity sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==
+"@typescript-eslint/tsconfig-utils@8.55.0", "@typescript-eslint/tsconfig-utils@^8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.55.0.tgz#62f1d005419985e09d37a040b2f1450e4e805afa"
+ integrity sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==
-"@typescript-eslint/type-utils@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.54.0.tgz#64965317dd4118346c2fa5ee94492892200e9fb9"
- integrity sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==
+"@typescript-eslint/type-utils@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.55.0.tgz#195d854b3e56308ce475fdea2165313bb1190200"
+ integrity sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==
dependencies:
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
- "@typescript-eslint/utils" "8.54.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
+ "@typescript-eslint/utils" "8.55.0"
debug "^4.4.3"
ts-api-utils "^2.4.0"
-"@typescript-eslint/types@8.54.0", "@typescript-eslint/types@^8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.54.0.tgz#c12d41f67a2e15a8a96fbc5f2d07b17331130889"
- integrity sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==
+"@typescript-eslint/types@8.55.0", "@typescript-eslint/types@^8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.55.0.tgz#8449c5a7adac61184cac92dbf6315733569708c2"
+ integrity sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==
-"@typescript-eslint/typescript-estree@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz#3c7716905b2b811fadbd2114804047d1bfc86527"
- integrity sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==
+"@typescript-eslint/typescript-estree@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.55.0.tgz#c83ac92c11ce79bedd984937c7780a65e7f7b2e3"
+ integrity sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==
dependencies:
- "@typescript-eslint/project-service" "8.54.0"
- "@typescript-eslint/tsconfig-utils" "8.54.0"
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/project-service" "8.55.0"
+ "@typescript-eslint/tsconfig-utils" "8.55.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
debug "^4.4.3"
minimatch "^9.0.5"
semver "^7.7.3"
tinyglobby "^0.2.15"
ts-api-utils "^2.4.0"
-"@typescript-eslint/utils@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.54.0.tgz#c79a4bcbeebb4f571278c0183ed1cb601d84c6c8"
- integrity sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==
+"@typescript-eslint/utils@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.55.0.tgz#c1744d94a3901deb01f58b09d3478d811f96d619"
+ integrity sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==
dependencies:
"@eslint-community/eslint-utils" "^4.9.1"
- "@typescript-eslint/scope-manager" "8.54.0"
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
+ "@typescript-eslint/scope-manager" "8.55.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
-"@typescript-eslint/visitor-keys@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz#0e4b50124b210b8600b245dd66cbad52deb15590"
- integrity sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==
+"@typescript-eslint/visitor-keys@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.55.0.tgz#3d9a40fd4e3705c63d8fae3af58988add3ed464d"
+ integrity sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==
dependencies:
- "@typescript-eslint/types" "8.54.0"
+ "@typescript-eslint/types" "8.55.0"
eslint-visitor-keys "^4.2.1"
-"@vitejs/plugin-react@^5.1.2":
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz#46f47be184c05a18839cb8705d79578b469ac6eb"
- integrity sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==
+"@vitejs/plugin-react@^5.1.4":
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.4.tgz#5b477e060bf612a7394c4febacc5de33a219b0e4"
+ integrity sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==
dependencies:
- "@babel/core" "^7.28.5"
+ "@babel/core" "^7.29.0"
"@babel/plugin-transform-react-jsx-self" "^7.27.1"
"@babel/plugin-transform-react-jsx-source" "^7.27.1"
- "@rolldown/pluginutils" "1.0.0-beta.53"
+ "@rolldown/pluginutils" "1.0.0-rc.3"
"@types/babel__core" "^7.20.5"
react-refresh "^0.18.0"
@@ -1688,11 +1754,6 @@ balanced-match@^1.0.0:
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base64-arraybuffer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc"
- integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==
-
bootstrap@^5.3.8:
version "5.3.8"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.8.tgz#6401a10057a22752d21f4e19055508980656aeed"
@@ -1815,20 +1876,6 @@ caniuse-lite@^1.0.30001663:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz#ad9c90301f7153cf6b3314d16cc30757285bf9e7"
integrity sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==
-canvg@^3.0.11:
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.11.tgz#4b4290a6c7fa36871fac2b14e432eff33b33cf2b"
- integrity sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==
- dependencies:
- "@babel/runtime" "^7.12.5"
- "@types/raf" "^3.4.0"
- core-js "^3.8.3"
- raf "^3.4.1"
- regenerator-runtime "^0.13.7"
- rgbcolor "^1.0.1"
- stackblur-canvas "^2.0.0"
- svg-pathdata "^6.0.3"
-
chalk@^2.0.0, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
@@ -1892,11 +1939,6 @@ cookie@^1.0.1:
resolved "https://registry.yarnpkg.com/cookie/-/cookie-1.0.2.tgz#27360701532116bd3f1f9416929d176afe1e4610"
integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==
-core-js@^3.6.0, core-js@^3.8.3:
- version "3.48.0"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.48.0.tgz#1f813220a47bbf0e667e3885c36cd6f0593bf14d"
- integrity sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==
-
cosmiconfig@^8.1.3:
version "8.3.6"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
@@ -1924,13 +1966,6 @@ cross-spawn@^7.0.6:
shebang-command "^2.0.0"
which "^2.0.1"
-css-line-break@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0"
- integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==
- dependencies:
- utrie "^1.0.2"
-
csstype@^3.2.2:
version "3.2.3"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a"
@@ -2068,7 +2103,7 @@ doctrine@^2.1.0:
dependencies:
esutils "^2.0.2"
-dompurify@^3.2.4, dompurify@^3.3.1:
+dompurify@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.3.1.tgz#c7e1ddebfe3301eacd6c0c12a4af284936dbbb86"
integrity sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==
@@ -2725,10 +2760,10 @@ esutils@^2.0.2:
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-excel-builder-vanilla@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/excel-builder-vanilla/-/excel-builder-vanilla-4.2.1.tgz#c6c0f6ca8f7aaa0b3a660343f9359b3fe718d4dc"
- integrity sha512-lqQ7WtIvJcVfuGi64/QOIkjEoqypr8P9YIYiR1LdRXCuPvdC8olvf3EoGeFsorkJt4Ml56qBUDthQIYz83H1Qg==
+excel-builder-vanilla@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/excel-builder-vanilla/-/excel-builder-vanilla-5.0.0.tgz#5d5f416d7611c91fe3031b3a6e7f5729c38714fa"
+ integrity sha512-oLOWQ5/RTA2RMvO8PkXZc1sreOpjF7MGw4LNfJQdABPUYjwdY5qng/LVN1i9bVQ85jmZN3gD2NBu5VCChjnqrQ==
dependencies:
fflate "^0.8.2"
@@ -2747,21 +2782,12 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
-fast-png@^6.2.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/fast-png/-/fast-png-6.4.0.tgz#807fc353ccab060d09151b7d082786e02d8e92d6"
- integrity sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==
- dependencies:
- "@types/pako" "^2.0.3"
- iobuffer "^5.3.2"
- pako "^2.1.0"
-
fdir@^6.5.0:
version "6.5.0"
resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
-fflate@^0.8.1, fflate@^0.8.2:
+fflate@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea"
integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==
@@ -2988,10 +3014,10 @@ globals@^15.11.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-15.11.0.tgz#b96ed4c6998540c6fb824b24b5499216d2438d6e"
integrity sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==
-globals@^17.2.0:
- version "17.2.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-17.2.0.tgz#41d29408d6f5408457d2ef965d29215e3026779f"
- integrity sha512-tovnCz/fEq+Ripoq+p/gN1u7l6A7wwkoBT9pRCzTHzsD/LvADIzXZdjmRymh5Ztf0DYC3Rwg5cZRYjxzBmzbWg==
+globals@^17.3.0:
+ version "17.3.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-17.3.0.tgz#8b96544c2fa91afada02747cc9731c002a96f3b9"
+ integrity sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==
globalthis@^1.0.3:
version "1.0.3"
@@ -3133,14 +3159,6 @@ hermes-parser@^0.25.1:
dependencies:
hermes-estree "0.25.1"
-html2canvas@^1.0.0-rc.5:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543"
- integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==
- dependencies:
- css-line-break "^2.1.0"
- text-segmentation "^1.0.3"
-
ignore@^5.2.0:
version "5.2.4"
resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
@@ -3201,11 +3219,6 @@ internal-slot@^1.1.0:
hasown "^2.0.2"
side-channel "^1.1.0"
-iobuffer@^5.3.2:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/iobuffer/-/iobuffer-5.4.0.tgz#f85dff957fd0579257472f0a4cfe5ed3430e63e1"
- integrity sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==
-
is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
version "3.0.2"
resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz"
@@ -3597,20 +3610,6 @@ json5@^2.2.3:
resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-jspdf@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-4.0.0.tgz#3731c0a1a7d8afe28c681891236f8ad4a662d893"
- integrity sha512-w12U97Z6edKd2tXDn3LzTLg7C7QLJlx0BPfM3ecjK2BckUl9/81vZ+r5gK4/3KQdhAcEZhENUxRhtgYBj75MqQ==
- dependencies:
- "@babel/runtime" "^7.28.4"
- fast-png "^6.2.0"
- fflate "^0.8.1"
- optionalDependencies:
- canvg "^3.0.11"
- core-js "^3.6.0"
- dompurify "^3.2.4"
- html2canvas "^1.0.0-rc.5"
-
"jsx-ast-utils@^2.4.1 || ^3.0.0":
version "3.3.5"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a"
@@ -3723,10 +3722,10 @@ ms@^2.1.1, ms@^2.1.3:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-multiple-select-vanilla@^4.4.1:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/multiple-select-vanilla/-/multiple-select-vanilla-4.4.1.tgz#bf42a38d17f3629e895ea19a1d82faa7fab8dd9f"
- integrity sha512-vG8Ea0ovHKrhi1FvpYlnNpDed1I6JzHyFoDtznRTH7A00y/t6MKGSKMs7cNp8mpXUnWb7WZr3/k0naFjg3qeCw==
+multiple-select-vanilla@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/multiple-select-vanilla/-/multiple-select-vanilla-5.0.0.tgz#a9a8b1fdd959169315bd2a9c940121b777010ab3"
+ integrity sha512-sdYPD/6C1zgfqFQsCHWUBYsM9+XWAw7Hrdf1EepcAOPxFTnT/wzGdbPTNAdZszf1l/AyHDi6QKhP9bqXiRI2wQ==
dependencies:
"@types/trusted-types" "^2.0.7"
@@ -3898,11 +3897,6 @@ p-locate@^5.0.0:
dependencies:
p-limit "^3.0.2"
-pako@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
- integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
-
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
@@ -3940,11 +3934,6 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
- integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
-
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
@@ -4008,13 +3997,6 @@ punycode@^2.1.0:
resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
-raf@^3.4.1:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
- integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
- dependencies:
- performance-now "^2.1.0"
-
react-dom@^19.2.4:
version "19.2.4"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.4.tgz#6fac6bd96f7db477d966c7ec17c1a2b1ad8e6591"
@@ -4071,11 +4053,6 @@ reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9:
get-proto "^1.0.1"
which-builtin-type "^1.2.1"
-regenerator-runtime@^0.13.7:
- version "0.13.11"
- resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
- integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
-
regexp.prototype.flags@^1.5.1:
version "1.5.1"
resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz"
@@ -4135,11 +4112,6 @@ resolve@^2.0.0-next.5:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-rgbcolor@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d"
- integrity sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==
-
rollup@^4.43.0:
version "4.46.2"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.46.2.tgz#09b1a45d811e26d09bed63dc3ecfb6831c16ce32"
@@ -4396,20 +4368,19 @@ side-channel@^1.1.0:
side-channel-map "^1.0.1"
side-channel-weakmap "^1.0.2"
-slickgrid-react@^9.13.0:
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/slickgrid-react/-/slickgrid-react-9.13.0.tgz#0527af73ea0726e8d006d4662ae92075abe51803"
- integrity sha512-nrFa8MuOyTeNSlKEA3yNcpBXHbIl0mmbTZnfFR7Kty6OPrvgUbMwxaOWR/UZ88qKbLte08McdlEifn65Z5bfVg==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/custom-footer-component" "9.13.0"
- "@slickgrid-universal/empty-warning-component" "9.13.0"
- "@slickgrid-universal/event-pub-sub" "9.13.0"
- "@slickgrid-universal/pagination-component" "9.13.0"
- "@slickgrid-universal/row-detail-view-plugin" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+slickgrid-react@^10.0.0-beta.0:
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/slickgrid-react/-/slickgrid-react-10.0.0-beta.0.tgz#f5fbedb062916f2a4780652427903db9082c97a0"
+ integrity sha512-aEaA+/x33f+0Nc57vr9S5KXAGwCJQSASxaoFCVq5k7S8IEEwKN33QY2ynE+RQAi22QR8ZmQ6x+EZ7TfHgkgQVg==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/custom-footer-component" "10.0.0-beta.0"
+ "@slickgrid-universal/empty-warning-component" "10.0.0-beta.0"
+ "@slickgrid-universal/event-pub-sub" "10.0.0-beta.0"
+ "@slickgrid-universal/pagination-component" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
dequal "^2.0.3"
- sortablejs "^1.15.6"
+ sortablejs "^1.15.7"
snake-case@^3.0.4:
version "3.0.4"
@@ -4419,10 +4390,10 @@ snake-case@^3.0.4:
dot-case "^3.0.4"
tslib "^2.0.3"
-sortablejs@^1.15.6:
- version "1.15.6"
- resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.6.tgz#ff93699493f5b8ab8d828f933227b4988df1d393"
- integrity sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==
+sortablejs@^1.15.7:
+ version "1.15.7"
+ resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.7.tgz#83a0bddc472117ee328dea20b2e6f490fed20f86"
+ integrity sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==
"source-map-js@>=0.6.2 <2.0.0":
version "1.0.2"
@@ -4434,11 +4405,6 @@ source-map-js@^1.2.1:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
-stackblur-canvas@^2.0.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz#af931277d0b5096df55e1f91c530043e066989b6"
- integrity sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==
-
stop-iteration-iterator@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad"
@@ -4586,11 +4552,6 @@ svg-parser@^2.0.4:
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
-svg-pathdata@^6.0.3:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz#80b0e0283b652ccbafb69ad4f8f73e8d3fbf2cac"
- integrity sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==
-
tapable@^2.2.0:
version "2.2.1"
resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz"
@@ -4601,13 +4562,6 @@ text-encoding-utf-8@^1.0.2:
resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz"
integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==
-text-segmentation@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943"
- integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==
- dependencies:
- utrie "^1.0.2"
-
tinyglobby@^0.2.15:
version "0.2.15"
resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2"
@@ -4795,15 +4749,15 @@ typed-array-length@^1.0.7:
possible-typed-array-names "^1.0.0"
reflect.getprototypeof "^1.0.6"
-typescript-eslint@^8.54.0:
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.54.0.tgz#f4ef3b8882a5ddc2a41968e014194c178ab23f6a"
- integrity sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==
+typescript-eslint@^8.55.0:
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.55.0.tgz#abae8295c5f0f82f816218113a46e89bc30c3de2"
+ integrity sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==
dependencies:
- "@typescript-eslint/eslint-plugin" "8.54.0"
- "@typescript-eslint/parser" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
- "@typescript-eslint/utils" "8.54.0"
+ "@typescript-eslint/eslint-plugin" "8.55.0"
+ "@typescript-eslint/parser" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
+ "@typescript-eslint/utils" "8.55.0"
typescript@^5.9.3:
version "5.9.3"
@@ -4855,13 +4809,6 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
-utrie@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645"
- integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==
- dependencies:
- base64-arraybuffer "^1.0.2"
-
vanilla-calendar-pro@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/vanilla-calendar-pro/-/vanilla-calendar-pro-3.1.0.tgz#e64fb1e7bfad6f63858778c9130af8b75832a268"
@@ -4876,10 +4823,10 @@ vite-plugin-svgr@^4.5.0:
"@svgr/core" "^8.1.0"
"@svgr/plugin-jsx" "^8.1.0"
-vite-tsconfig-paths@^6.0.5:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.0.5.tgz#5bcbb44d6ae0d12fe42f5915a6ad9846b0ed7805"
- integrity sha512-f/WvY6ekHykUF1rWJUAbCU7iS/5QYDIugwpqJA+ttwKbxSbzNlqlE8vZSrsnxNQciUW+z6lvhlXMaEyZn9MSig==
+vite-tsconfig-paths@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.1.tgz#d5c28cba79c89ebf76489ef1040024b21df6da3a"
+ integrity sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==
dependencies:
debug "^4.1.1"
globrex "^0.1.2"
diff --git a/with-i18n-translate/package.json b/with-i18n-translate/package.json
index bb5fc08..6fba7c6 100644
--- a/with-i18n-translate/package.json
+++ b/with-i18n-translate/package.json
@@ -30,34 +30,35 @@
"lint": "eslint . --no-cache"
},
"dependencies": {
- "@slickgrid-universal/composite-editor-component": "^9.13.0",
- "@slickgrid-universal/custom-tooltip-plugin": "^9.13.0",
- "@slickgrid-universal/excel-export": "^9.13.0",
- "@slickgrid-universal/graphql": "^9.13.0",
- "@slickgrid-universal/odata": "^9.13.0",
- "@slickgrid-universal/pdf-export": "^9.13.0",
- "@slickgrid-universal/rxjs-observable": "^9.13.0",
- "@slickgrid-universal/text-export": "^9.13.0",
+ "@slickgrid-universal/composite-editor-component": "^10.0.0-beta.0",
+ "@slickgrid-universal/custom-tooltip-plugin": "^10.0.0-beta.0",
+ "@slickgrid-universal/excel-export": "^10.0.0-beta.0",
+ "@slickgrid-universal/graphql": "^10.0.0-beta.0",
+ "@slickgrid-universal/odata": "^10.0.0-beta.0",
+ "@slickgrid-universal/pdf-export": "^10.0.0-beta.0",
+ "@slickgrid-universal/react-row-detail-plugin": "^10.0.0-beta.0",
+ "@slickgrid-universal/rxjs-observable": "^10.0.0-beta.0",
+ "@slickgrid-universal/text-export": "^10.0.0-beta.0",
"bootstrap": "^5.3.8",
"dompurify": "^3.3.1",
- "i18next": "^25.8.0",
+ "i18next": "^25.8.7",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react-i18next": "^16.5.4",
- "slickgrid-react": "^9.13.0"
+ "slickgrid-react": "^10.0.0-beta.0"
},
"devDependencies": {
- "@faker-js/faker": "^10.2.0",
+ "@faker-js/faker": "^10.3.0",
"@fnando/sparkline": "^0.3.10",
"@popperjs/core": "^2.11.8",
"@types/fnando__sparkline": "^0.3.7",
"@types/i18next-xhr-backend": "^1.4.2",
- "@types/node": "^24.10.9",
- "@types/react": "^19.2.10",
+ "@types/node": "^24.10.13",
+ "@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/sortablejs": "^1.15.9",
"@types/text-encoding-utf-8": "^1.0.5",
- "@vitejs/plugin-react": "^5.1.2",
+ "@vitejs/plugin-react": "^5.1.4",
"cross-env": "^10.1.0",
"eslint": "^9.39.2",
"eslint-plugin-import": "^2.32.0",
@@ -65,15 +66,15 @@
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
- "globals": "^17.2.0",
+ "globals": "^17.3.0",
"react-router-dom": "^7.13.0",
"rxjs": "^7.8.2",
"sass": "^1.97.3",
"typescript": "^5.9.3",
- "typescript-eslint": "^8.54.0",
+ "typescript-eslint": "^8.55.0",
"vite": "^7.3.1",
"vite-plugin-svgr": "^4.5.0",
- "vite-tsconfig-paths": "^6.0.5"
+ "vite-tsconfig-paths": "^6.1.1"
},
"engines": {
"node": ">=20.0.0"
diff --git a/with-i18n-translate/src/examples/slickgrid/App.tsx b/with-i18n-translate/src/examples/slickgrid/App.tsx
index 55a67ea..b7fb17f 100644
--- a/with-i18n-translate/src/examples/slickgrid/App.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/App.tsx
@@ -1,7 +1,7 @@
import { useEffect } from 'react';
import { Routes as BaseRoutes, Link, Navigate, Route, useLocation } from 'react-router';
-
import { NavBar } from '../../NavBar.js';
+
import Example1 from './Example1.js';
import Example2 from './Example2.js';
import Example3 from './Example3.js';
@@ -51,6 +51,7 @@ import Example47 from './Example47.js';
import Example48 from './Example48.js';
import Example49 from './Example49.js';
import Example50 from './Example50.js';
+import Example51 from './Example51.js';
const routes: Array<{ path: string; route: string; component: any; title: string }> = [
{ path: 'example1', route: '/example1', component: , title: '1- Basic Grid / 2 Grids' },
@@ -102,6 +103,7 @@ const routes: Array<{ path: string; route: string; component: any; title: string
{ path: 'example48', route: '/example48', component: , title: '48- Hybrid Selection Model' },
{ path: 'example49', route: '/example49', component: , title: '49- Spreadsheet Drag-Fill' },
{ path: 'example50', route: '/example50', component: , title: '50- Master/Detail Grids' },
+ { path: 'example51', route: '/example51', component: , title: '51- Menus with Slots' },
];
export default function Routes() {
diff --git a/with-i18n-translate/src/examples/slickgrid/Example-detail-preload.tsx b/with-i18n-translate/src/examples/slickgrid/Example-detail-preload.tsx
index f8ade4c..6ab6a12 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example-detail-preload.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example-detail-preload.tsx
@@ -1,6 +1,7 @@
-import { forwardRef, useEffect } from 'react';
+import { useEffect } from 'react';
-export const ExampleDetailPreload = forwardRef((props: any, ref: any) => {
+export const ExampleDetailPreload = (props: any) => {
+ const { ref, ...rest } = props;
useEffect(() => {
return () => {
console.log('Preload unmounted');
@@ -8,9 +9,9 @@ export const ExampleDetailPreload = forwardRef((props: any, ref: any) => {
}, []);
return (
-
-
+
+
Loading...
);
-});
+};
diff --git a/with-i18n-translate/src/examples/slickgrid/Example10.tsx b/with-i18n-translate/src/examples/slickgrid/Example10.tsx
index d61dbbe..df77a33 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example10.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example10.tsx
@@ -150,7 +150,7 @@ const Example10: React.FC = () => {
const gridOptions1: GridOption = {
enableAutoResize: false,
enableCellNavigation: true,
- enableRowSelection: true,
+ enableSelection: true,
enableCheckboxSelector: true,
enableFiltering: true,
checkboxSelector: {
@@ -162,7 +162,7 @@ const Example10: React.FC = () => {
// selectableOverride: (row: number, dataContext: any, grid: SlickGrid) => (dataContext.id % 2 === 1)
},
multiSelect: false,
- rowSelectionOptions: {
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: true,
},
@@ -198,12 +198,12 @@ const Example10: React.FC = () => {
hideInColumnTitleRow: true,
applySelectOnAllPages: true, // when clicking "Select All", should we apply it to all pages (defaults to true)
},
- rowSelectionOptions: {
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: false,
},
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
gridHeight: 255,
gridWidth: 800,
enablePagination: true,
@@ -303,7 +303,7 @@ const Example10: React.FC = () => {
}
function onGrid1SelectedRowsChanged(_e: Event, args: any) {
- const grid = args && args.grid;
+ const grid = args?.grid;
if (Array.isArray(args.rows)) {
const selectedTitles = args.rows.map((idx: number) => {
const item = grid.getDataItem(idx);
diff --git a/with-i18n-translate/src/examples/slickgrid/Example11.tsx b/with-i18n-translate/src/examples/slickgrid/Example11.tsx
index 3913977..4e67c56 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example11.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example11.tsx
@@ -128,7 +128,7 @@ const Example11: React.FC = () => {
editable: true,
enableColumnPicker: true,
enableCellNavigation: true,
- enableRowSelection: true,
+ enableSelection: true,
});
}
@@ -302,7 +302,7 @@ const Example11: React.FC = () => {
Adding an item, will always be showing as the 1st item in the grid because that is the best visual place to add it
Add/Update an item requires a valid Slickgrid Selection Model, you have 2 choices to deal with this:
- You can enable "enableCheckboxSelector" or "enableRowSelection" to True
+ You can enable "enableCheckboxSelector" or "enableSelection" to True
Click on any of the buttons below to test this out
diff --git a/with-i18n-translate/src/examples/slickgrid/Example12.tsx b/with-i18n-translate/src/examples/slickgrid/Example12.tsx
index 7a7c65a..99fe0dc 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example12.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example12.tsx
@@ -4,7 +4,6 @@ import i18next from 'i18next';
import React, { useEffect, useRef, useState } from 'react';
import { withTranslation } from 'react-i18next';
import {
- DelimiterType,
Filters,
Formatters,
SlickgridReact,
@@ -160,7 +159,7 @@ const Example12: React.FC = () => {
hideInColumnTitleRow: true,
},
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
showCustomFooter: true, // display some metrics in the bottom custom footer
customFooterOptions: {
metricTexts: {
@@ -253,7 +252,7 @@ const Example12: React.FC = () => {
function exportToFile(type = 'csv') {
textExportService.exportToFile({
- delimiter: type === 'csv' ? DelimiterType.comma : DelimiterType.tab,
+ delimiter: type === 'csv' ? ',' : '\t',
filename: 'myExport',
format: type === 'csv' ? 'csv' : 'txt',
});
diff --git a/with-i18n-translate/src/examples/slickgrid/Example14.tsx b/with-i18n-translate/src/examples/slickgrid/Example14.tsx
index 61afdaf..be59583 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example14.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example14.tsx
@@ -7,11 +7,12 @@ import './example14.scss'; // provide custom CSS/SASS styling
const Example14: React.FC = () => {
const [gridOptions1, setGridOptions1] = useState(undefined);
const [gridOptions2, setGridOptions2] = useState(undefined);
+ const [isColspanSpreading, setIsColspanSpreading] = useState(false);
const [columnDefinitions1, setColumnDefinitions1] = useState([]);
const [columnDefinitions2, setColumnDefinitions2] = useState([]);
const [dataset1, setDataset1] = useState([]);
const [dataset2, setDataset2] = useState([]);
- // const reactGridRef1 = useRef(null);
+ const reactGridRef1 = useRef(null);
const reactGridRef2 = useRef(null);
const [hideSubTitle, setHideSubTitle] = useState(false);
@@ -22,9 +23,9 @@ const Example14: React.FC = () => {
setDataset2(getData(500));
}, []);
- // function reactGrid1Ready(reactGrid: SlickgridReactInstance) {
- // reactGridRef1.current = reactGrid;
- // }
+ function reactGrid1Ready(reactGrid: SlickgridReactInstance) {
+ reactGridRef1.current = reactGrid;
+ }
function reactGrid2Ready(reactGrid: SlickgridReactInstance) {
reactGridRef2.current = reactGrid;
@@ -162,6 +163,14 @@ const Example14: React.FC = () => {
};
}
+ function spreadColspan() {
+ const isSpreading = !isColspanSpreading;
+ setIsColspanSpreading(isSpreading);
+ reactGridRef1.current?.slickGrid?.setOptions({ spreadHiddenColspan: isSpreading });
+ reactGridRef1.current?.slickGrid?.resetActiveCell();
+ reactGridRef1.current?.slickGrid?.invalidate();
+ }
+
return !gridOptions1 ? (
''
) : (
@@ -200,8 +209,23 @@ const Example14: React.FC = () => {
Grid 1 (with Header Grouping & Colspan)
+ spreadColspan()}
+ data-test="spread-colspan-button"
+ title="Should we always spread the same visible column count with or without hidden columns?"
+ >
+ Toggle Spreading of ColSpan with/without Hidden Columns
+
-
+
+ reactGrid1Ready($event.detail)}
+ />
diff --git a/with-i18n-translate/src/examples/slickgrid/Example15.tsx b/with-i18n-translate/src/examples/slickgrid/Example15.tsx
index 70a87b7..c98d838 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example15.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example15.tsx
@@ -51,8 +51,6 @@ const Example15: React.FC = () => {
/** Clear the Grid State from Local Storage and reset the grid to it's original state */
function clearGridStateFromLocalStorage() {
- // reactGridRef.current?.slickGrid.setColumns(reactGridRef.current?.gridService.getAllColumnDefinitions());
- // reactGridRef.current?.slickGrid.autosizeColumns();
reactGridRef.current?.gridService.resetGrid(getColumnDefinitions());
reactGridRef.current?.paginationService!.changeItemPerPage(DEFAULT_PAGE_SIZE);
setTimeout(() => (localStorage[LOCAL_STORAGE_KEY] = null));
diff --git a/with-i18n-translate/src/examples/slickgrid/Example16.tsx b/with-i18n-translate/src/examples/slickgrid/Example16.tsx
index 70883ae..1fcaf68 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example16.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example16.tsx
@@ -81,8 +81,8 @@ const Example16: React.FC = () => {
hideInFilterHeaderRow: false,
hideInColumnTitleRow: true,
},
- enableRowSelection: true,
- rowSelectionOptions: {
+ enableSelection: true,
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: false,
},
diff --git a/with-i18n-translate/src/examples/slickgrid/Example18.tsx b/with-i18n-translate/src/examples/slickgrid/Example18.tsx
index 721267d..1a09ea1 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example18.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example18.tsx
@@ -245,16 +245,17 @@ const Example18: React.FC = () => {
initialGroupBy: ['duration'],
},
darkMode,
- enableTextExport: true,
- enableExcelExport: true,
excelExportOptions: { sanitizeDataExport: true },
textExportOptions: { sanitizeDataExport: true },
- enablePdfExport: true,
pdfExportOptions: {
repeatHeadersOnEachPage: true, // defaults to true
documentTitle: 'Grouping Grid',
},
externalResources: [excelExportService, pdfExportService, textExportService],
+ // -- NOTE: registered resources are auto-enabled
+ // enableTextExport: true,
+ // enablePdfExport: true,
+ // enableExcelExport: true,
};
setColumnDefinitions(columnDefinitions);
diff --git a/with-i18n-translate/src/examples/slickgrid/Example19-detail-view.tsx b/with-i18n-translate/src/examples/slickgrid/Example19-detail-view.tsx
index 2e5457a..abb6b5e 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example19-detail-view.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example19-detail-view.tsx
@@ -1,4 +1,4 @@
-import React, { forwardRef, useState } from 'react';
+import React, { useState } from 'react';
import type { RowDetailViewProps } from 'slickgrid-react';
import './example19-detail-view.scss';
@@ -14,7 +14,8 @@ interface Item {
rowId: number;
}
-const Example19DetailView: React.FC> = forwardRef((props, _ref) => {
+const Example19DetailView: React.FC> = (props) => {
+ // const { ref, ...rest } = props;
const [assignee, setAssignee] = useState(props.model?.assignee || '');
function assigneeChanged(newAssignee: string) {
@@ -123,6 +124,6 @@ const Example19DetailView: React.FC> = forwardRef(
);
-});
+};
export default Example19DetailView;
diff --git a/with-i18n-translate/src/examples/slickgrid/Example19.tsx b/with-i18n-translate/src/examples/slickgrid/Example19.tsx
index 791afac..719adda 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example19.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example19.tsx
@@ -1,16 +1,7 @@
import { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';
+import { ReactSlickRowDetailView } from '@slickgrid-universal/react-row-detail-plugin';
import React, { useEffect, useRef, useState } from 'react';
-import {
- Editors,
- ExtensionName,
- Filters,
- Formatters,
- SlickgridReact,
- SlickRowDetailView,
- type Column,
- type GridOption,
- type SlickgridReactInstance,
-} from 'slickgrid-react';
+import { Editors, Filters, Formatters, SlickgridReact, type Column, type GridOption, type SlickgridReactInstance } from 'slickgrid-react';
import { ExampleDetailPreload } from './Example-detail-preload.js';
import Example19DetailView from './Example19-detail-view.js';
@@ -41,7 +32,7 @@ const Example19: React.FC = () => {
}, []);
function rowDetailInstance() {
- return reactGridRef.current?.extensionService.getExtensionInstanceByName(ExtensionName.rowDetailView) as SlickRowDetailView;
+ return reactGridRef.current?.extensionService.getExtensionInstanceByName('rowDetailView') as ReactSlickRowDetailView;
}
const getColumnsDefinition = (): Column[] => {
@@ -173,8 +164,8 @@ const Example19: React.FC = () => {
darkMode,
datasetIdPropertyName: 'rowId',
preRegisterExternalExtensions: (pubSubService) => {
- const rowDetail = new SlickRowDetailView(pubSubService as EventPubSubService);
- return [{ name: ExtensionName.rowDetailView, instance: rowDetail }];
+ const rowDetail = new ReactSlickRowDetailView(pubSubService as EventPubSubService);
+ return [{ name: 'rowDetailView', instance: rowDetail }];
},
rowDetailView: {
process: (item) => simulateServerAsyncCall(item),
@@ -192,7 +183,7 @@ const Example19: React.FC = () => {
return true;
},
},
- rowSelectionOptions: {
+ selectionOptions: {
selectActiveRow: true,
},
};
diff --git a/with-i18n-translate/src/examples/slickgrid/Example21.tsx b/with-i18n-translate/src/examples/slickgrid/Example21.tsx
index 51862b3..af4bed5 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example21.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example21.tsx
@@ -1,12 +1,5 @@
import React, { useEffect, useRef, useState } from 'react';
-import {
- Formatters,
- SlickgridReact,
- type Column,
- type GridOption,
- type OperatorString,
- type SlickgridReactInstance,
-} from 'slickgrid-react';
+import { Formatters, SlickgridReact, type Column, type GridOption, type OperatorType, type SlickgridReactInstance } from 'slickgrid-react';
import './example21.scss';
const Example21: React.FC = () => {
@@ -14,7 +7,7 @@ const Example21: React.FC = () => {
const [dataset] = useState(getData());
const [gridOptions, setGridOptions] = useState(undefined);
const reactGridRef = useRef(null);
- const [operatorList] = useState(['=', '<', '<=', '>', '>=', '<>', 'StartsWith', 'EndsWith']);
+ const [operatorList] = useState(['=', '<', '<=', '>', '>=', '<>', 'StartsWith', 'EndsWith']);
const [selectedOperator, setSelectedOperator] = useState('');
const [searchValue, setSearchValue] = useState('');
const [selectedColumn, setSelectedColumn] = useState();
@@ -107,7 +100,7 @@ const Example21: React.FC = () => {
alwaysShowVerticalScroll: false,
enableColumnPicker: true,
enableCellNavigation: true,
- enableRowSelection: true,
+ enableSelection: true,
};
setColumnDefinitions(columnDefinitions);
@@ -163,7 +156,7 @@ const Example21: React.FC = () => {
function updateFilter() {
reactGridRef.current?.filterService.updateSingleFilter({
columnId: `${selectedColumn?.id ?? ''}`,
- operator: selectedOperator as OperatorString,
+ operator: selectedOperator as OperatorType,
searchTerms: [searchValue || ''],
});
}
diff --git a/with-i18n-translate/src/examples/slickgrid/Example23.tsx b/with-i18n-translate/src/examples/slickgrid/Example23.tsx
index 9b4beda..f511156 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example23.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example23.tsx
@@ -7,7 +7,6 @@ import { withTranslation } from 'react-i18next';
import {
Filters,
Formatters,
- OperatorType,
SlickgridReact,
type Column,
type CurrentFilter,
@@ -104,7 +103,7 @@ const Example23: React.FC = () => {
filter: {
model: Filters.sliderRange,
maxValue: 100, // or you can use the options as well
- operator: OperatorType.rangeInclusive, // defaults to inclusive
+ operator: 'RangeInclusive', // defaults to inclusive
options: {
hideSliderNumbers: false, // you can hide/show the slider numbers on both side
min: 0,
@@ -152,7 +151,7 @@ const Example23: React.FC = () => {
filterable: true,
filter: {
model: Filters.input,
- operator: OperatorType.rangeExclusive, // defaults to exclusive
+ operator: 'RangeExclusive', // defaults to exclusive
},
},
{
@@ -310,8 +309,8 @@ const Example23: React.FC = () => {
switch (newPredefinedFilter) {
case 'currentYearTasks':
filters = [
- { columnId: 'finish', operator: OperatorType.rangeInclusive, searchTerms: [`${currentYear}-01-01`, `${currentYear}-12-31`] },
- { columnId: 'completed', operator: OperatorType.equal, searchTerms: [true] },
+ { columnId: 'finish', operator: 'RangeInclusive', searchTerms: [`${currentYear}-01-01`, `${currentYear}-12-31`] },
+ { columnId: 'completed', operator: '=', searchTerms: [true] },
];
break;
case 'nextYearTasks':
diff --git a/with-i18n-translate/src/examples/slickgrid/Example24.tsx b/with-i18n-translate/src/examples/slickgrid/Example24.tsx
index 01ca8ef..ed8e6b1 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example24.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example24.tsx
@@ -3,7 +3,6 @@ import i18next from 'i18next';
import React, { useEffect, useRef, useState } from 'react';
import { withTranslation } from 'react-i18next';
import {
- ExtensionName,
Filters,
Formatters,
SlickgridReact,
@@ -85,11 +84,11 @@ const Example24: React.FC = () => {
}
function cellMenuInstance() {
- return reactGridRef.current?.extensionService.getExtensionInstanceByName(ExtensionName.cellMenu);
+ return reactGridRef.current?.extensionService.getExtensionInstanceByName('cellMenu');
}
function contextMenuInstance() {
- return reactGridRef.current?.extensionService.getExtensionInstanceByName(ExtensionName.contextMenu);
+ return reactGridRef.current?.extensionService.getExtensionInstanceByName('contextMenu');
}
/* Define grid Options and Columns */
@@ -348,7 +347,7 @@ const Example24: React.FC = () => {
onCommand: (_e, args) => executeCommand(_e, args),
onOptionSelected: (_e, args) => {
// change "Completed" property with new option selected from the Cell Menu
- const dataContext = args && args.dataContext;
+ const dataContext = args?.dataContext;
if (dataContext && dataContext.hasOwnProperty('completed')) {
dataContext.completed = args.item.option;
reactGridRef.current?.gridService.updateItem(dataContext);
@@ -429,7 +428,7 @@ const Example24: React.FC = () => {
// optionally and conditionally define when the the menu is usable,
// this should be used with a custom formatter to show/hide/disable the menu
menuUsabilityOverride: (args) => {
- const dataContext = args && args.dataContext;
+ const dataContext = args?.dataContext;
return dataContext.id < 21; // say we want to display the menu only from Task 0 to 20
},
// which column to show the command list? when not defined it will be shown over all columns
@@ -460,7 +459,7 @@ const Example24: React.FC = () => {
},
// only show command to 'Help' when the task is Not Completed
itemVisibilityOverride: (args) => {
- const dataContext = args && args.dataContext;
+ const dataContext = args?.dataContext;
return !dataContext.completed;
},
},
@@ -526,7 +525,7 @@ const Example24: React.FC = () => {
textCssClass: 'italic',
// only enable this option when the task is Not Completed
itemUsabilityOverride: (args) => {
- const dataContext = args && args.dataContext;
+ const dataContext = args?.dataContext;
return !dataContext.completed;
},
// you can use the 'action' callback and/or subscribe to the 'onCallback' event, they both have the same arguments
@@ -548,7 +547,7 @@ const Example24: React.FC = () => {
disabled: true,
// only shown when the task is Not Completed
itemVisibilityOverride: (args) => {
- const dataContext = args && args.dataContext;
+ const dataContext = args?.dataContext;
return !dataContext.completed;
},
},
@@ -579,7 +578,7 @@ const Example24: React.FC = () => {
// subscribe to Context Menu onOptionSelected event (or use the action callback on each option)
onOptionSelected: (_e, args) => {
// change Priority
- const dataContext = args && args.dataContext;
+ const dataContext = args?.dataContext;
if (dataContext && dataContext.hasOwnProperty('priority')) {
dataContext.priority = args.item.option;
reactGridRef.current?.gridService.updateItem(dataContext);
diff --git a/with-i18n-translate/src/examples/slickgrid/Example25.tsx b/with-i18n-translate/src/examples/slickgrid/Example25.tsx
index 41084e3..76b772f 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example25.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example25.tsx
@@ -1,14 +1,6 @@
import { GraphqlService, type GraphqlResult, type GraphqlServiceApi } from '@slickgrid-universal/graphql';
import React, { useEffect, useState } from 'react';
-import {
- Filters,
- Formatters,
- OperatorType,
- SlickgridReact,
- type Column,
- type GridOption,
- type MultipleSelectOption,
-} from 'slickgrid-react';
+import { Filters, Formatters, SlickgridReact, type Column, type GridOption, type MultipleSelectOption } from 'slickgrid-react';
import './example25.scss'; // provide custom CSS/SASS styling
const COUNTRIES_API = 'https://countries.trevorblades.com/';
@@ -78,7 +70,7 @@ const Example25: React.FC = () => {
filter: {
model: Filters.multipleSelect,
collectionAsync: getLanguages(),
- operator: OperatorType.inContains,
+ operator: 'IN_CONTAINS',
collectionOptions: {
addBlankEntry: true,
// the data is not at the root of the array, so we must tell the Select Filter where to pull the data
@@ -106,7 +98,7 @@ const Example25: React.FC = () => {
filter: {
model: Filters.multipleSelect,
collectionAsync: getLanguages(),
- operator: OperatorType.inContains,
+ operator: 'IN_CONTAINS',
collectionOptions: {
addBlankEntry: true,
// the data is not at the root of the array, so we must tell the Select Filter where to pull the data
@@ -268,7 +260,7 @@ const Example25: React.FC = () => {
// function setFiltersDynamically() {
// // we can Set Filters Dynamically (or different filters) afterward through the FilterService
// reactGridRef.current?.filterService.updateFilters([
- // { columnId: 'countryName', searchTerms: ['G'], operator: OperatorType.startsWith },
+ // { columnId: 'countryName', searchTerms: ['G'], operator: 'StartsWith' },
// ]);
// }
diff --git a/with-i18n-translate/src/examples/slickgrid/Example3.tsx b/with-i18n-translate/src/examples/slickgrid/Example3.tsx
index be450da..2a706f8 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example3.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example3.tsx
@@ -4,7 +4,6 @@ import {
Editors,
Filters,
Formatters,
- OperatorType,
SlickGlobalEditorLock,
SlickgridReact,
SortComparers,
@@ -31,7 +30,7 @@ const NB_ITEMS = 100;
// you can create custom validator to pass to an inline editor
const myCustomTitleValidator: EditorValidator = (value: any) => {
// you can get the Editor Args which can be helpful, e.g. we can get the Translate Service from it
- // const grid = args && args.grid;
+ // const grid = args?.grid;
// const gridOptions = grid.getOptions() as GridOption;
// const i18n = gridOptions.i18n;
@@ -197,7 +196,7 @@ const Example3: React.FC = () => {
collectionFilterBy: {
property: 'value',
value: 0,
- operator: OperatorType.notEqual,
+ operator: '!=',
},
model: Editors.singleSelect,
// validator: (value, args) => {
@@ -418,7 +417,7 @@ const Example3: React.FC = () => {
separatorBetweenTextLabels: ' ',
},
model: Filters.multipleSelect,
- operator: OperatorType.inContains,
+ operator: 'IN_CONTAINS',
},
},
]);
diff --git a/with-i18n-translate/src/examples/slickgrid/Example30.tsx b/with-i18n-translate/src/examples/slickgrid/Example30.tsx
index 9b3c683..54db122 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example30.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example30.tsx
@@ -482,7 +482,7 @@ const Example30: React.FC = () => {
},
externalResources: [new ExcelExportService(), new SlickCustomTooltip(), compositeEditorInstanceRef.current!],
enableFiltering: true,
- rowSelectionOptions: {
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: false,
},
@@ -490,7 +490,7 @@ const Example30: React.FC = () => {
showPreHeaderPanel: true,
preHeaderPanelHeight: 28,
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
multiSelect: false,
checkboxSelector: {
hideInFilterHeaderRow: false,
diff --git a/with-i18n-translate/src/examples/slickgrid/Example31.tsx b/with-i18n-translate/src/examples/slickgrid/Example31.tsx
index 5481332..b6bdcc8 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example31.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example31.tsx
@@ -5,7 +5,6 @@ import { Observable, of, type Subject } from 'rxjs';
import {
Editors,
Filters,
- OperatorType,
SlickgridReact,
type Column,
type GridOption,
@@ -100,7 +99,7 @@ const Example31: React.FC = () => {
enableCellNavigation: true,
enableFiltering: true,
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
enablePagination: true, // you could optionally disable the Pagination
pagination: {
pageSizes: [10, 20, 50, 100, 500],
@@ -109,7 +108,7 @@ const Example31: React.FC = () => {
},
presets: {
// you can also type operator as string, e.g.: operator: 'EQ'
- filters: [{ columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal }],
+ filters: [{ columnId: 'gender', searchTerms: ['male'], operator: '=' }],
sorters: [
// direction can be written as 'asc' (uppercase or lowercase) and/or use the SortDirection type
{ columnId: 'name', direction: 'asc' },
@@ -386,7 +385,7 @@ const Example31: React.FC = () => {
function setFiltersDynamically() {
// we can Set Filters Dynamically (or different filters) afterward through the FilterService
reactGridRef.current?.filterService.updateFilters([
- // { columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal },
+ // { columnId: 'gender', searchTerms: ['male'], operator: '=' },
{ columnId: 'name', searchTerms: ['A'], operator: 'a*' },
]);
}
diff --git a/with-i18n-translate/src/examples/slickgrid/Example32.tsx b/with-i18n-translate/src/examples/slickgrid/Example32.tsx
index 57605f9..fe0c7c8 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example32.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example32.tsx
@@ -491,13 +491,13 @@ const Example32: React.FC = () => {
},
externalResources: [new ExcelExportService()],
enableFiltering: true,
- enableRowSelection: true,
+ enableSelection: true,
enableCheckboxSelector: true,
checkboxSelector: {
hideInFilterHeaderRow: false,
hideInColumnTitleRow: true,
},
- rowSelectionOptions: {
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: false,
},
@@ -585,7 +585,7 @@ const Example32: React.FC = () => {
// just for demo purposes, set it back to its original width
const columns = reactGridRef.current?.slickGrid.getColumns() as Column[];
columns.forEach((col) => (col.width = col.originalWidth));
- reactGridRef.current?.slickGrid.setColumns(columns);
+ reactGridRef.current?.slickGrid.updateColumns();
reactGridRef.current?.slickGrid.autosizeColumns();
setIsUsingDefaultResize(true);
}
diff --git a/with-i18n-translate/src/examples/slickgrid/Example33.tsx b/with-i18n-translate/src/examples/slickgrid/Example33.tsx
index 4d8e8f0..bc776cb 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example33.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example33.tsx
@@ -2,10 +2,10 @@ import { SlickCustomTooltip } from '@slickgrid-universal/custom-tooltip-plugin';
import { ExcelExportService } from '@slickgrid-universal/excel-export';
import React, { useEffect, useRef, useState } from 'react';
import {
+ createDomElement,
Editors,
Filters,
Formatters,
- OperatorType,
SlickgridReact,
type Column,
type EditCommand,
@@ -139,6 +139,31 @@ const Example33: React.FC = () => {
// maxHeight: 30,
},
},
+ {
+ id: 'button',
+ name: 'Button Tooltip',
+ field: 'title',
+ width: 100,
+ minWidth: 100,
+ filterable: true,
+ excludeFromExport: true,
+ formatter: (_row: number, _cell: number, value: any) => {
+ const button = createDomElement('button', {
+ className: 'btn btn-outline-secondary btn-icon btn-sm',
+ title: 'This is the button tooltip',
+ });
+ const icon = createDomElement('i', { className: 'mdi mdi-information', title: 'icon tooltip' });
+ const text = createDomElement('span', { textContent: 'Hello Task' });
+ button.appendChild(icon);
+ button.appendChild(text);
+ button.addEventListener('click', () => alert(`Clicked button for ${value}`));
+ return button;
+ },
+ // define tooltip options here OR for the entire grid via the grid options (cell tooltip options will have precedence over grid options)
+ customTooltip: {
+ useRegularTooltip: true, // note regular tooltip will try to find a "title" attribute in the cell formatter (it won't work without a cell formatter)
+ },
+ },
{
id: 'cost',
name: 'Cost ',
@@ -318,7 +343,7 @@ const Example33: React.FC = () => {
collectionOptions: { separatorBetweenTextLabels: ' ' },
options: { minHeight: 70 } as MultipleSelectOption,
model: Filters.multipleSelect,
- operator: OperatorType.inContains,
+ operator: 'IN_CONTAINS',
},
},
{
@@ -401,19 +426,21 @@ const Example33: React.FC = () => {
headerFormatter,
headerRowFormatter,
usabilityOverride: (args) => args.cell !== 0 && args?.column?.id !== 'action', // don't show on first/last columns
+ observeAllTooltips: true, // observe all elements with title/data-slick-tooltip attributes (not just SlickGrid elements)
+ observeTooltipContainer: 'body', // defaults to 'body', target a specific container (only works when observeAllTooltips is enabled)
},
presets: {
filters: [{ columnId: 'prerequisites', searchTerms: [1, 3, 5, 7, 9, 12, 15, 18, 21, 25, 28, 29, 30, 32, 34] }],
},
- rowHeight: 33,
+ rowHeight: 38,
enableFiltering: true,
- rowSelectionOptions: {
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: false,
},
showCustomFooter: true,
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
checkboxSelector: {
hideInFilterHeaderRow: false,
hideInColumnTitleRow: true,
@@ -430,7 +457,7 @@ const Example33: React.FC = () => {
onCommand: (e, args) => executeCommand(e, args),
onOptionSelected: (_e, args) => {
// change "Completed" property with new option selected from the Cell Menu
- const dataContext = args && args.dataContext;
+ const dataContext = args?.dataContext;
if (dataContext && dataContext.hasOwnProperty('completed')) {
dataContext.completed = args.item.option;
reactGridRef.current?.gridService.updateItem(dataContext);
@@ -464,7 +491,7 @@ const Example33: React.FC = () => {
id: i,
title: 'Task ' + i,
duration: Math.round(Math.random() * 100),
- description: `This is a sample task description.\nIt can be multiline\r\rAnother line...`,
+ description: i > 500 ? null : `This is a sample task description.\nIt can be multiline\r\rAnother line...`,
percentComplete: Math.floor(Math.random() * (100 - 5 + 1) + 5),
start: new Date(randomYear, randomMonth, randomDay),
finish: randomFinish < new Date() ? '' : randomFinish, // make sure the random date is earlier than today
@@ -574,6 +601,20 @@ const Example33: React.FC = () => {
reactGridRef.current?.resizerService.resizeGrid(0);
}
+ function setFiltersDynamically(operator: string) {
+ const operatorType = operator === '=' ? '=' : '!=';
+ reactGridRef.current?.filterService.updateFilters(
+ [
+ {
+ columnId: 'desc',
+ operator: operatorType,
+ searchTerms: [''],
+ },
+ ],
+ true
+ );
+ }
+
return !gridOptions ? (
''
) : (
@@ -625,6 +666,24 @@ const Example33: React.FC = () => {
value={serverWaitDelay}
onInput={($event) => handleServerDelayInputChange($event)}
/>
+ setFiltersDynamically('=')}
+ title="Apply filter to show only empty descriptions"
+ >
+
+ Filters Empty Description
+
+ setFiltersDynamically('!=')}
+ title="Apply filter to show only non-empty descriptions"
+ >
+
+ Filters Non-Empty Description
+
Lazy loading collection...
diff --git a/with-i18n-translate/src/examples/slickgrid/Example35.tsx b/with-i18n-translate/src/examples/slickgrid/Example35.tsx
index 574c990..55c105e 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example35.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example35.tsx
@@ -291,7 +291,7 @@ const Example35: React.FC = () => {
(see
example35.scss{' '}
diff --git a/with-i18n-translate/src/examples/slickgrid/Example38.tsx b/with-i18n-translate/src/examples/slickgrid/Example38.tsx
index 55899cf..f00dca1 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example38.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example38.tsx
@@ -97,7 +97,7 @@ const Example38: React.FC = () => {
enableCellNavigation: true,
enableFiltering: true,
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
enableGrouping: true,
presets: {
// NOTE: pagination preset is NOT supported with infinite scroll
diff --git a/with-i18n-translate/src/examples/slickgrid/Example4.tsx b/with-i18n-translate/src/examples/slickgrid/Example4.tsx
index 4a11c1a..5ff343c 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example4.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example4.tsx
@@ -4,7 +4,6 @@ import { useEffect, useState } from 'react';
import {
Filters,
Formatters,
- OperatorType,
SlickgridReact,
type Column,
type GridOption,
@@ -78,12 +77,12 @@ const Example4: React.FC = () => {
collectionFilterBy: [
{
property: 'value',
- operator: OperatorType.notEqual,
+ operator: '!=',
value: 360,
},
{
property: 'value',
- operator: OperatorType.notEqual,
+ operator: '!=',
value: 365,
},
],
diff --git a/with-i18n-translate/src/examples/slickgrid/Example41.tsx b/with-i18n-translate/src/examples/slickgrid/Example41.tsx
index 81f0fd0..f397268 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example41.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example41.tsx
@@ -53,11 +53,12 @@ const Example41: React.FC = () => {
gridWidth: 800,
rowHeight: 33,
enableCellNavigation: true,
- enableRowSelection: true,
+ enableSelection: true,
enableRowMoveManager: true,
- rowSelectionOptions: {
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: false,
+ selectionType: 'row',
},
rowMoveManager: {
columnIndexPosition: 0,
diff --git a/with-i18n-translate/src/examples/slickgrid/Example42-Custom-Pager.tsx b/with-i18n-translate/src/examples/slickgrid/Example42-Custom-Pager.tsx
index 7b71239..21eb20e 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example42-Custom-Pager.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example42-Custom-Pager.tsx
@@ -8,7 +8,8 @@ export interface CustomPagerComponentRef {
renderPagination: () => void;
}
-const CustomPagerComponent = React.forwardRef
((_props, ref) => {
+const CustomPagerComponent = (_props: any) => {
+ const { ref /*, ...props */ } = _props;
const [currentPagination, setCurrentPagination] = useState({} as PaginationMetadata);
const [isLeftPaginationDisabled, setIsLeftPaginationDisabled] = useState(false);
const [isRightPaginationDisabled, setIsRightPaginationDisabled] = useState(false);
@@ -174,6 +175,6 @@ const CustomPagerComponent = React.forwardRef((_pr
);
-});
+};
export default CustomPagerComponent;
diff --git a/with-i18n-translate/src/examples/slickgrid/Example42.tsx b/with-i18n-translate/src/examples/slickgrid/Example42.tsx
index f11eb70..e79080e 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example42.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example42.tsx
@@ -2,7 +2,6 @@ import React, { useEffect, useRef, useState } from 'react';
import {
Filters,
Formatters,
- OperatorType,
SlickgridReact,
type Column,
type GridOption,
@@ -68,7 +67,7 @@ const Example42: React.FC = () => {
filter: {
model: Filters.sliderRange,
maxValue: 100, // or you can use the options as well
- operator: OperatorType.rangeInclusive, // defaults to inclusive
+ operator: 'RangeInclusive', // defaults to inclusive
options: {
hideSliderNumbers: false, // you can hide/show the slider numbers on both side
min: 0,
@@ -114,7 +113,7 @@ const Example42: React.FC = () => {
filterable: true,
filter: {
model: Filters.input,
- operator: OperatorType.rangeExclusive, // defaults to exclusive
+ operator: 'RangeExclusive', // defaults to exclusive
},
},
{
diff --git a/with-i18n-translate/src/examples/slickgrid/Example43.tsx b/with-i18n-translate/src/examples/slickgrid/Example43.tsx
index a726b0f..194d0d3 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example43.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example43.tsx
@@ -418,7 +418,8 @@ export default function Example43() {
}
}
- // update column definitions
+ // 1. update column definitions via grid.setColumns()
+ // this will shift colspan/rowspan to the left or right accordingly
const cols: Column[] = reactGrid?.slickGrid.getColumns() || [];
if (newShowEmployeeId) {
cols.unshift({ id: 'employeeID', name: 'Employee ID', field: 'employeeID', width: 100 });
@@ -427,6 +428,22 @@ export default function Example43() {
}
reactGrid?.slickGrid.setColumns(cols || []);
+ // --- OR ---
+ // 2. OR update via "hidden" column flag & increase/decrease column index accordingly in the metadata
+ // this approach will keep colspan/rowspan "as-is" but will hide the EmployeeID column
+ /*
+ const colDirIdx = newShowEmployeeId ? -1 : 1;
+ for (const row of Object.keys(this.metadata)) {
+ newMetadata[row] = { columns: {} };
+ for (const col of Object.keys((this.metadata as any)[row].columns)) {
+ newMetadata[row].columns[Number(col) + colDirIdx] = (this.metadata as any)[row].columns[col];
+ }
+ }
+ reactGrid?.slickGrid?.setOptions({ frozenColumn: newShowEmployeeId ? 0 : 1 });
+ reactGrid?.slickGrid?.updateColumnById('employeeID', { hidden: !newShowEmployeeId });
+ reactGrid?.slickGrid?.updateColumns();
+ */
+
// update & remap rowspans
metadataRef.current = newMetadata;
reactGrid?.slickGrid.remapAllColumnsRowSpan();
diff --git a/with-i18n-translate/src/examples/slickgrid/Example45-detail-view.tsx b/with-i18n-translate/src/examples/slickgrid/Example45-detail-view.tsx
index 7924841..fb139fd 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example45-detail-view.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example45-detail-view.tsx
@@ -1,4 +1,4 @@
-import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
+import React, { useEffect, useRef, useState } from 'react';
import {
SlickgridReact,
type Column,
@@ -29,7 +29,7 @@ export interface OrderData {
shipName: string;
}
-const Example45DetailView: React.FC> = forwardRef((props, ref) => {
+const Example45DetailView: React.FC> = (props) => {
const [showGrid, setShowGrid] = useState(false);
const [innerGridOptions, setInnerGridOptions] = useState(undefined);
const [innerColDefs, setInnerColDefs] = useState([]);
@@ -37,10 +37,6 @@ const Example45DetailView: React.FC(null);
const innerGridClass = `row-detail-${props.model.id}`;
- useImperativeHandle(ref, () => ({
- getReactGridInstance: () => reactGridRef.current,
- }));
-
useEffect(() => {
defineGrid();
return () => {
@@ -122,6 +118,6 @@ const Example45DetailView: React.FC
);
-});
+};
export default Example45DetailView;
diff --git a/with-i18n-translate/src/examples/slickgrid/Example45-preload.tsx b/with-i18n-translate/src/examples/slickgrid/Example45-preload.tsx
index a5309d7..a3ba72d 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example45-preload.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example45-preload.tsx
@@ -1,6 +1,7 @@
-import { forwardRef, useEffect } from 'react';
+import { useEffect } from 'react';
-export const Example45Preload = forwardRef((props: any, ref: any) => {
+export const Example45Preload = (props: any) => {
+ const { ref, ...rest } = props;
useEffect(() => {
return () => {
console.log('Preload unmounted');
@@ -8,9 +9,9 @@ export const Example45Preload = forwardRef((props: any, ref: any) => {
}, []);
return (
-
+
Loading...
);
-});
+};
diff --git a/with-i18n-translate/src/examples/slickgrid/Example45.tsx b/with-i18n-translate/src/examples/slickgrid/Example45.tsx
index d482585..3d425cb 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example45.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example45.tsx
@@ -1,14 +1,8 @@
import { faker } from '@faker-js/faker';
import { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';
+import { ReactSlickRowDetailView } from '@slickgrid-universal/react-row-detail-plugin';
import React, { useEffect, useRef, useState } from 'react';
-import {
- ExtensionName,
- SlickgridReact,
- SlickRowDetailView,
- type Column,
- type GridOption,
- type SlickgridReactInstance,
-} from 'slickgrid-react';
+import { SlickgridReact, type Column, type GridOption, type SlickgridReactInstance } from 'slickgrid-react';
import Example45DetailView, { type Distributor, type OrderData } from './Example45-detail-view.js';
import { Example45Preload } from './Example45-preload.js';
@@ -47,7 +41,7 @@ const Example45: React.FC = () => {
}, [isUsingInnerGridStatePresets]);
function rowDetailInstance() {
- return reactGridRef.current?.extensionService.getExtensionInstanceByName(ExtensionName.rowDetailView) as SlickRowDetailView;
+ return reactGridRef.current?.extensionService.getExtensionInstanceByName('rowDetailView') as ReactSlickRowDetailView;
}
function getColumnDefinitions(): Column[] {
@@ -164,8 +158,8 @@ const Example45: React.FC = () => {
rowHeight: 33,
darkMode,
preRegisterExternalExtensions: (pubSubService) => {
- const rowDetail = new SlickRowDetailView(pubSubService as EventPubSubService);
- return [{ name: ExtensionName.rowDetailView, instance: rowDetail }];
+ const rowDetail = new ReactSlickRowDetailView(pubSubService as EventPubSubService);
+ return [{ name: 'rowDetailView', instance: rowDetail }];
},
rowDetailView: {
process: (item) => simulateServerAsyncCall(item),
diff --git a/with-i18n-translate/src/examples/slickgrid/Example46.tsx b/with-i18n-translate/src/examples/slickgrid/Example46.tsx
index 91c1ad9..90d1ed1 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example46.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example46.tsx
@@ -135,7 +135,7 @@ const Example46: React.FC = () => {
sanitizeDataExport: true,
},
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
multiSelect: false,
checkboxSelector: {
// columnIndexPosition: 1,
diff --git a/with-i18n-translate/src/examples/slickgrid/Example47-detail-view.tsx b/with-i18n-translate/src/examples/slickgrid/Example47-detail-view.tsx
index 86fd6b7..1af6aca 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example47-detail-view.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example47-detail-view.tsx
@@ -1,4 +1,4 @@
-import React, { forwardRef, useState } from 'react';
+import React, { useState } from 'react';
import type { RowDetailViewProps } from 'slickgrid-react';
import './example47-detail-view.scss';
import { showToast } from './utilities.js';
@@ -15,7 +15,8 @@ interface Item {
title: string;
}
-const Example47DetailView: React.FC
> = forwardRef((props, _ref) => {
+const Example47DetailView: React.FC> = (props) => {
+ // const { ref, ...rest } = props;
const [assignee, setAssignee] = useState(props.model?.assignee || '');
function assigneeChanged(newAssignee: string) {
@@ -124,6 +125,6 @@ const Example47DetailView: React.FC> = forwardRef(
);
-});
+};
export default Example47DetailView;
diff --git a/with-i18n-translate/src/examples/slickgrid/Example47.tsx b/with-i18n-translate/src/examples/slickgrid/Example47.tsx
index bea9260..45db112 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example47.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example47.tsx
@@ -1,4 +1,5 @@
import { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';
+import { ReactSlickRowDetailView } from '@slickgrid-universal/react-row-detail-plugin';
import React, { useEffect, useRef, useState } from 'react';
import {
Aggregators,
@@ -8,7 +9,6 @@ import {
Formatters,
GroupTotalFormatters,
SlickgridReact,
- SlickRowDetailView,
SortComparers,
SortDirectionNumber,
type Column,
@@ -60,7 +60,7 @@ const Example47: React.FC = () => {
}
function rowDetailInstance() {
- return reactGridRef.current?.extensionService.getExtensionInstanceByName(ExtensionName.rowDetailView) as SlickRowDetailView;
+ return reactGridRef.current?.extensionService.getExtensionInstanceByName(ExtensionName.rowDetailView) as ReactSlickRowDetailView;
}
const getColumnsDefinition = (): Column- [] => {
@@ -200,8 +200,8 @@ const Example47: React.FC = () => {
rowTopOffsetRenderType: 'top', // RowDetail and/or RowSpan don't render well with "transform", you should use "top"
darkMode,
preRegisterExternalExtensions: (pubSubService) => {
- const rowDetail = new SlickRowDetailView(pubSubService as EventPubSubService);
- return [{ name: ExtensionName.rowDetailView, instance: rowDetail }];
+ const rowDetail = new ReactSlickRowDetailView(pubSubService as EventPubSubService);
+ return [{ name: 'rowDetailView', instance: rowDetail }];
},
rowDetailView: {
process: (item) => simulateServerAsyncCall(item),
@@ -211,7 +211,7 @@ const Example47: React.FC = () => {
preloadComponent: ExampleDetailPreload,
viewComponent: Example47DetailView,
},
- rowSelectionOptions: {
+ selectionOptions: {
selectActiveRow: true,
},
};
diff --git a/with-i18n-translate/src/examples/slickgrid/Example48.tsx b/with-i18n-translate/src/examples/slickgrid/Example48.tsx
index 0cafd54..28d403f 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example48.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example48.tsx
@@ -91,9 +91,10 @@ const Example48: React.FC = () => {
externalResources: [new ExcelExportService()],
// enable new hybrid selection model (rows & cells)
- enableHybridSelection: true,
- rowSelectionOptions: {
+ enableSelection: true,
+ selectionOptions: {
rowSelectColumnIds: ['id'],
+ selectionType: 'mixed',
},
// when using the ExcelCopyBuffer, you can see what the selection range is
@@ -111,8 +112,8 @@ const Example48: React.FC = () => {
...gridOptions1,
// you can also enable checkbox selection & row selection, make sure to use `rowSelectColumnIds: ['id', '_checkbox_selector']`
enableCheckboxSelector: true,
- enableRowSelection: true,
- rowSelectionOptions: {
+ enableSelection: true,
+ selectionOptions: {
// True (Single Selection), False (Multiple Selections)
selectActiveRow: false,
@@ -211,8 +212,7 @@ const Example48: React.FC = () => {
{hideSubTitle ? null : (
SlickHybridSelectionModel This Selection Model is an hybrid approach that uses a combination of the row or cell
- selections depending on certain conditions. Use
enableHybridSelection grid option to enable the new Hybrid Selection
- Model.
+ selections depending on certain conditions.
1. clicking on the first column (id) will use RowSelectionModel because of our configuration of
diff --git a/with-i18n-translate/src/examples/slickgrid/Example49.tsx b/with-i18n-translate/src/examples/slickgrid/Example49.tsx
index 9c95f31..6df4eee 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example49.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example49.tsx
@@ -75,10 +75,11 @@ const Example49: React.FC = () => {
editorNavigateOnArrows: true, // enable editor navigation using arrow keys
// enable new hybrid selection model (rows & cells)
- enableHybridSelection: true,
- rowSelectionOptions: {
+ enableSelection: true,
+ selectionOptions: {
selectActiveRow: true,
rowSelectColumnIds: ['selector'],
+ selectionType: 'mixed',
},
// when using the ExcelCopyBuffer, you can see what the selection range is
@@ -180,7 +181,9 @@ const Example49: React.FC = () => {
Spreadsheet with drag-fill, hybrid selection model. Type a few values in the grid and then select those cells and use the bottom
right drag handle spread the selection and auto-fill the values to other cells. Use onDragReplaceCells event to
- customize the drag-fill behavior. Use enableHybridSelection grid option to enable the new Hybrid Selection Model.
+ customize the drag-fill behavior. Use{' '}
+ { enableSelection: true, selectionOptions: { selectionType: 'mixed' }}
+ grid option to enable the new Hybrid Selection Model.
diff --git a/with-i18n-translate/src/examples/slickgrid/Example5.tsx b/with-i18n-translate/src/examples/slickgrid/Example5.tsx
index f159cd7..b6ec022 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example5.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example5.tsx
@@ -3,7 +3,6 @@ import { GridOdataService, type OdataOption, type OdataServiceApi } from '@slick
import { useEffect, useRef, useState } from 'react';
import {
Filters,
- OperatorType,
SlickgridReact,
type Column,
type GridOption,
@@ -65,13 +64,13 @@ const Example5: React.FC = () => {
hideInColumnTitleRow: true,
},
compoundOperatorAltTexts: {
- // where '=' is any of the `OperatorString` type shown above
+ // where '=' is any of the `OperatorType` type shown above
text: { Custom: { operatorAlt: '%%', descAlt: 'SQL Like' } },
},
enableCellNavigation: true,
enableFiltering: true,
enableCheckboxSelector: true,
- enableRowSelection: true,
+ enableSelection: true,
enablePagination: true, // you could optionally disable the Pagination
pagination: {
pageSizes: [10, 20, 50, 100, 500, 50000],
@@ -80,7 +79,7 @@ const Example5: React.FC = () => {
},
presets: {
// you can also type operator as string, e.g.: operator: 'EQ'
- filters: [{ columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal }],
+ filters: [{ columnId: 'gender', searchTerms: ['male'], operator: '=' }],
sorters: [
// direction can be written as 'asc' (uppercase or lowercase) and/or use the SortDirection type
{ columnId: 'name', direction: 'asc' },
@@ -94,7 +93,7 @@ const Example5: React.FC = () => {
enableSelect: isSelectEnabled,
enableExpand: isExpandEnabled,
filterQueryOverride: ({ fieldName, columnDef, columnFilterOperator, searchValues }) => {
- if (columnFilterOperator === OperatorType.custom && columnDef?.id === 'name') {
+ if (columnFilterOperator === 'Custom' && columnDef?.id === 'name') {
let matchesSearch = searchValues[0].replace(/\*/g, '.*');
matchesSearch = matchesSearch.slice(0, 1) + CARET_HTML_ESCAPED + matchesSearch.slice(1);
matchesSearch = matchesSearch.slice(0, -1) + "$'";
@@ -431,7 +430,7 @@ const Example5: React.FC = () => {
function setFiltersDynamically() {
// we can Set Filters Dynamically (or different filters) afterward through the FilterService
reactGridRef.current?.filterService.updateFilters([
- // { columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal },
+ // { columnId: 'gender', searchTerms: ['male'], operator: '=' },
{ columnId: 'name', searchTerms: ['A'], operator: 'a*' },
]);
}
diff --git a/with-i18n-translate/src/examples/slickgrid/Example50.tsx b/with-i18n-translate/src/examples/slickgrid/Example50.tsx
index f1d3458..fd8ecee 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example50.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example50.tsx
@@ -54,8 +54,8 @@ const Example50: React.FC = () => {
gridHeight: 225,
gridWidth: 800,
rowHeight: 33,
- enableHybridSelection: true,
- rowSelectionOptions: {
+ enableSelection: true,
+ selectionOptions: {
selectionType: 'row',
},
};
diff --git a/with-i18n-translate/src/examples/slickgrid/Example51.tsx b/with-i18n-translate/src/examples/slickgrid/Example51.tsx
new file mode 100644
index 0000000..fe65d4a
--- /dev/null
+++ b/with-i18n-translate/src/examples/slickgrid/Example51.tsx
@@ -0,0 +1,694 @@
+import { format as tempoFormat } from '@formkit/tempo';
+import { SlickCustomTooltip } from '@slickgrid-universal/custom-tooltip-plugin';
+import React, { useEffect, useRef, useState } from 'react';
+import {
+ Aggregators,
+ createDomElement,
+ Filters,
+ Formatters,
+ SlickgridReact,
+ SortComparers,
+ SortDirectionNumber,
+ type Column,
+ type GridOption,
+ type Grouping,
+ type MenuCommandItem,
+ type SlickgridReactInstance,
+} from 'slickgrid-react';
+import './example51.scss'; // provide custom CSS/SASS styling
+
+const NB_ITEMS = 2000;
+
+interface ReportItem {
+ id: number;
+ title: string;
+ duration: number;
+ cost: number;
+ percentComplete: number;
+ start: Date;
+ finish: Date;
+ action?: string;
+}
+
+const Example51: React.FC = () => {
+ const [columnDefinitions, setColumnDefinitions] = useState[]>([]);
+ const [gridOptions, setGridOptions] = useState();
+ const [dataset] = useState(loadData(NB_ITEMS));
+ const [hideSubTitle, setHideSubTitle] = useState(false);
+
+ const reactGridRef = useRef(null);
+
+ useEffect(() => {
+ defineGrid();
+ }, []);
+
+ function reactGridReady(reactGrid: SlickgridReactInstance) {
+ reactGridRef.current = reactGrid;
+ }
+
+ /* Define grid Options and Columns */
+ function defineGrid() {
+ const columnDefinitions: Column[] = [
+ {
+ id: 'title',
+ name: 'Title',
+ field: 'title',
+ sortable: true,
+ filterable: true,
+ minWidth: 100,
+ // Demo: Header Menu with Slot - complete custom HTML with keyboard shortcuts
+ header: {
+ menu: {
+ commandItems: [
+ {
+ command: 'sort-asc',
+ title: 'Sort Ascending',
+ positionOrder: 50,
+ // Slot renderer replaces entire menu item content (can be HTML string or native DOM elements)
+ slotRenderer: (cmdItem) => `
+
+ `,
+ },
+ {
+ command: 'sort-desc',
+ title: 'Sort Descending',
+ positionOrder: 51,
+ // Slot renderer using native DOM elements
+ slotRenderer: () => {
+ const menuItemElm = createDomElement('div', { className: 'menu-item' });
+ const iconElm = createDomElement('i', { className: 'mdi mdi-sort-descending menu-item-icon' });
+ const menuItemLabelElm = createDomElement('span', { className: 'menu-item-label', textContent: 'Sort Descending' });
+ const kbdElm = createDomElement('kbd', { className: 'key-hint', textContent: 'Alt+↓' });
+ menuItemElm.appendChild(iconElm);
+ menuItemElm.appendChild(menuItemLabelElm);
+ menuItemElm.appendChild(kbdElm);
+ return menuItemElm;
+ },
+ },
+ ],
+ },
+ },
+ },
+ {
+ id: 'duration',
+ name: 'Duration',
+ field: 'duration',
+ sortable: true,
+ filterable: true,
+ minWidth: 100,
+ // Demo: Header Menu with Slot - showing badge and status dot
+ header: {
+ menu: {
+ commandItems: [
+ {
+ command: 'column-resize-by-content',
+ title: 'Resize by Content',
+ positionOrder: 47,
+ // Slot renderer with badge
+ slotRenderer: () => `
+
+ `,
+ },
+ { divider: true, command: '', positionOrder: 48 },
+ {
+ command: 'sort-asc',
+ title: 'Sort Ascending',
+ iconCssClass: 'mdi mdi-sort-ascending',
+ positionOrder: 50,
+ },
+ {
+ command: 'sort-desc',
+ title: 'Sort Descending',
+ iconCssClass: 'mdi mdi-sort-descending',
+ positionOrder: 51,
+ },
+ { divider: true, command: '', positionOrder: 52 },
+ {
+ command: 'clear-sort',
+ title: 'Remove Sort',
+ positionOrder: 58,
+ // Slot renderer with status indicator
+ slotRenderer: () => `
+
+ `,
+ },
+ ],
+ },
+ },
+ },
+ {
+ id: 'start',
+ name: 'Start',
+ field: 'start',
+ sortable: true,
+ formatter: Formatters.dateIso,
+ filterable: true,
+ filter: { model: Filters.compoundDate },
+ minWidth: 100,
+ },
+ {
+ id: 'finish',
+ name: 'Finish',
+ field: 'finish',
+ sortable: true,
+ formatter: Formatters.dateIso,
+ filterable: true,
+ filter: { model: Filters.dateRange },
+ minWidth: 100,
+ },
+ {
+ id: 'cost',
+ name: 'Cost',
+ field: 'cost',
+ width: 90,
+ sortable: true,
+ filterable: true,
+ formatter: Formatters.dollar,
+ // Demo: Header Menu with Slot - showing slotRenderer with callback (item, args)
+ header: {
+ menu: {
+ commandItems: [
+ {
+ command: 'custom-action',
+ title: 'Advanced Export',
+ // Demo: Native HTMLElement with event listeners using slotRenderer (full DOM control)
+ slotRenderer: (cmdItem) => {
+ // you can use `createDomElement()` from Slickgrid for easier DOM element creation
+ const containerDiv = createDomElement('div', { className: 'menu-item' });
+ const iconDiv = createDomElement('div', { className: 'advanced-export-icon', textContent: '📊' });
+ const textSpan = createDomElement('span', { textContent: cmdItem.title || '', style: { flex: '1' } });
+ const kbdElm = createDomElement('kbd', { className: 'key-hint', textContent: 'Ctrl+E' });
+ containerDiv.appendChild(iconDiv);
+ containerDiv.appendChild(textSpan);
+ containerDiv.appendChild(kbdElm);
+
+ // Add native event listeners for hover effects
+ containerDiv.addEventListener('mouseover', () => {
+ iconDiv.style.transform = 'scale(1.15)';
+ iconDiv.style.background = 'linear-gradient(135deg, #d8dcef 0%, #ffffff 100%)';
+ containerDiv.parentElement!.style.backgroundColor = '#854685';
+ containerDiv.parentElement!.title = `📈 Export timestamp: ${tempoFormat(new Date(), 'YYYY-MM-DD hh:mm:ss a')}`;
+ containerDiv.style.color = 'white';
+ containerDiv.querySelector('.key-hint')!.style.color = 'black';
+ });
+ containerDiv.addEventListener('mouseout', () => {
+ iconDiv.style.transform = 'scale(1)';
+ iconDiv.style.background = 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)';
+ containerDiv.parentElement!.style.backgroundColor = 'white';
+ containerDiv.style.color = 'black';
+ document.querySelector('.export-timestamp')?.remove();
+ });
+
+ return containerDiv;
+ },
+ action: () => {
+ alert('Custom export action triggered!');
+ },
+ },
+ { divider: true, command: '' },
+ {
+ command: 'filter-column',
+ title: 'Filter Column',
+ // Slot renderer with status indicator and beta badge
+ slotRenderer: () => `
+
+ `,
+ },
+ ],
+ },
+ },
+ },
+ {
+ id: 'percentComplete',
+ name: '% Complete',
+ field: 'percentComplete',
+ sortable: true,
+ filterable: true,
+ type: 'number',
+ filter: { model: Filters.slider, operator: '>=' },
+ // Demo: Header Menu with Slot - showing interactive element (checkbox)
+ header: {
+ menu: {
+ commandItems: [
+ {
+ command: 'recalc',
+ title: 'Recalculate',
+ iconCssClass: 'mdi mdi-refresh',
+ slotRenderer: () => `
+
+ `,
+ },
+ ],
+ },
+ },
+ },
+ {
+ id: 'action',
+ name: 'Action',
+ field: 'action',
+ width: 70,
+ minWidth: 70,
+ maxWidth: 70,
+ cssClass: 'justify-center flex',
+ formatter: () =>
+ `
`,
+ excludeFromExport: true,
+ // Demo: Cell Menu with slot examples (demonstrating defaultMenuItemRenderer at menu level)
+ cellMenu: {
+ hideCloseButton: false,
+ commandTitle: 'Cell Actions',
+ // Demo: Menu-level default renderer that applies to all items unless overridden
+ defaultMenuItemRenderer: (cmdItem) => {
+ return `
+
+ `;
+ },
+ commandItems: [
+ {
+ command: 'copy-cell',
+ title: 'Copy Cell Value',
+ iconCssClass: 'mdi mdi-content-copy',
+ action: (_e, args) => {
+ console.log('Copy cell value:', args.dataContext[args.column.field]);
+ alert(`Copied: ${args.dataContext[args.column.field]}`);
+ },
+ },
+ 'divider',
+ {
+ command: 'export-row',
+ title: 'Export Row',
+ iconCssClass: 'mdi mdi-download',
+ action: (_e, args) => {
+ console.log('Export row:', args.dataContext);
+ alert(`Export row #${args.dataContext.id}`);
+ },
+ },
+ {
+ command: 'export',
+ title: 'Export',
+ iconCssClass: 'mdi mdi-download',
+ commandItems: [
+ {
+ command: 'export-excel',
+ title: 'Export as Excel',
+ iconCssClass: 'mdi mdi-file-excel-outline text-success',
+ action: (_e, args) => {
+ alert(`Export row #${args.dataContext.id} to Excel`);
+ },
+ },
+ {
+ command: 'export-csv',
+ title: 'Export as CSV',
+ iconCssClass: 'mdi mdi-file-document-outline',
+ action: (_e, args) => {
+ alert(`Export row #${args.dataContext.id} to CSV`);
+ },
+ },
+ {
+ command: 'export-pdf',
+ title: 'Export as PDF',
+ iconCssClass: 'mdi mdi-file-pdf-outline text-red',
+ action: (_e, args) => {
+ alert(`Export row #${args.dataContext.id} to PDF`);
+ },
+ },
+ ],
+ },
+ { divider: true, command: '' },
+ {
+ command: 'edit-row',
+ title: 'Edit Row',
+ // Individual slotRenderer overrides the defaultMenuItemRenderer
+ slotRenderer: (_item, args) => `
+
+ `,
+ action: (_e, args) => {
+ console.log('Edit row:', args.dataContext);
+ alert(`Edit row #${args.dataContext.id}`);
+ },
+ },
+ {
+ command: 'delete-row',
+ title: 'Delete Row',
+ iconCssClass: 'mdi mdi-delete text-danger',
+ action: (_event, args) => {
+ const dataContext = args.dataContext;
+ if (confirm(`Do you really want to delete row (${args.row! + 1}) with "${dataContext.title}"`)) {
+ reactGridRef.current?.gridService.deleteItemById(dataContext.id);
+ }
+ },
+ },
+ ],
+ },
+ },
+ ];
+
+ const gridOptions: GridOption = {
+ autoResize: {
+ container: '#demo-container',
+ },
+ enableAutoResize: true,
+ enableCellNavigation: true,
+ enableFiltering: true,
+ enableSorting: true,
+ enableGrouping: true,
+
+ // Header Menu with slots (already configured in columns above)
+ enableHeaderMenu: true,
+ headerMenu: {
+ // hideCommands: ['column-resize-by-content', 'clear-sort'],
+
+ // Demo: Menu-level default renderer for all header menu items
+ defaultMenuItemRenderer: (cmdItem) => {
+ return `
+
+ `;
+ },
+ },
+
+ // Cell Menu with slots (configured in the Action column above)
+ enableCellMenu: true,
+
+ // Context Menu with slot examples
+ enableContextMenu: true,
+ contextMenu: {
+ // hideCommands: ['clear-grouping', 'copy'],
+
+ // build your command items list
+ // spread built-in commands and optionally filter/sort them however you want
+ commandListBuilder: (builtInItems) => {
+ // commandItems.sort((a, b) => (a === 'divider' || b === 'divider' ? 0 : a.title! > b.title! ? -1 : 1));
+ return [
+ // filter commands if you want
+ // ...builtInItems.filter((x) => x !== 'divider' && x.command !== 'copy' && x.command !== 'clear-grouping'),
+ {
+ command: 'edit-cell',
+ title: 'Edit Cell',
+ // Demo: Individual slotRenderer overrides the menu's defaultMenuItemRenderer
+ slotRenderer: (cmdItem) => {
+ // you can use `createDomElement()` from Slickgrid for easier DOM element creation
+ const containerDiv = createDomElement('div', { className: 'menu-item' });
+ const iconDiv = createDomElement('div', { className: 'edit-cell-icon', textContent: '✎' });
+ const textSpan = createDomElement('span', { textContent: cmdItem.title || '', style: { flex: '1' } });
+ const kbdElm = createDomElement('kbd', { className: 'edit-cell', textContent: 'F2' });
+ containerDiv.appendChild(iconDiv);
+ containerDiv.appendChild(textSpan);
+ containerDiv.appendChild(kbdElm);
+
+ // Native event listeners for interactive effects
+ containerDiv.addEventListener('mouseover', () => {
+ iconDiv.style.transform = 'rotate(15deg) scale(1.1)';
+ iconDiv.style.boxShadow = '0 2px 8px rgba(0,200,83,0.4)';
+ });
+ containerDiv.addEventListener('mouseout', () => {
+ iconDiv.style.transform = 'rotate(0deg) scale(1)';
+ iconDiv.style.boxShadow = 'none';
+ });
+
+ return containerDiv;
+ },
+ action: () => alert('Edit cell'),
+ },
+ ...builtInItems,
+ { divider: true, command: '' },
+ {
+ command: 'export',
+ title: 'Export',
+ iconCssClass: 'mdi mdi-download',
+ commandItems: [
+ {
+ command: 'export-excel',
+ title: 'Export as Excel',
+ iconCssClass: 'mdi mdi-file-excel-outline text-success',
+ action: () => alert('Export to Excel'),
+ },
+ {
+ command: 'export-csv',
+ title: 'Export as CSV',
+ iconCssClass: 'mdi mdi-file-document-outline',
+ action: () => alert('Export to CSV'),
+ },
+ {
+ command: 'export-pdf',
+ title: 'Export as PDF',
+ iconCssClass: 'mdi mdi-file-pdf-outline text-danger',
+ action: () => alert('Export to PDF'),
+ },
+ ],
+ },
+ { divider: true, command: '' },
+ {
+ command: 'delete-row',
+ title: 'Delete Row',
+ iconCssClass: 'mdi mdi-delete text-danger',
+ action: () => alert('Delete row'),
+ },
+ ] as Array;
+ },
+ // Demo: Menu-level default renderer for context menu items
+ defaultMenuItemRenderer: (cmdItem) => {
+ return `
+
+ `;
+ },
+ },
+
+ // Grid Menu with slot examples (demonstrating defaultMenuItemRenderer at menu level)
+ enableGridMenu: true,
+ gridMenu: {
+ // hideCommands: ['toggle-preheader', 'toggle-filter'],
+
+ // Demo: Menu-level default renderer that applies to all items (can be overridden per item with slotRenderer)
+ defaultMenuItemRenderer: (cmdItem) => {
+ return `
+
+ `;
+ },
+ commandListBuilder: (builtInItems) => {
+ return [
+ ...builtInItems,
+ { divider: true, command: '' },
+ {
+ command: 'export-excel',
+ title: 'Export to Excel',
+ iconCssClass: 'mdi mdi-file-excel-outline',
+ action: () => alert('Export to Excel'),
+ },
+ {
+ command: 'export-csv',
+ title: 'Export to CSV',
+ iconCssClass: 'mdi mdi-download',
+ // Individual slotRenderer overrides the defaultMenuItemRenderer for this item
+ slotRenderer: (cmdItem) => `
+
+ `,
+ action: () => alert('Export to CSV'),
+ },
+ {
+ command: 'refresh-data',
+ title: 'Refresh Data',
+ iconCssClass: 'mdi mdi-refresh',
+ // Demo: slotRenderer with keyboard shortcut
+ slotRenderer: (cmdItem) => {
+ // you can use `createDomElement()` from Slickgrid for easier DOM element creation
+ const menuItemElm = createDomElement('div', { className: 'menu-item' });
+ const iconElm = createDomElement('i', { className: `${cmdItem.iconCssClass} menu-item-icon` });
+ const menuItemLabelElm = createDomElement('span', { className: 'menu-item-label', textContent: cmdItem.title || '' });
+ const kbdElm = createDomElement('kbd', { className: 'key-hint', textContent: 'F5' });
+ menuItemElm.appendChild(iconElm);
+ menuItemElm.appendChild(menuItemLabelElm);
+ menuItemElm.appendChild(kbdElm);
+ return menuItemElm;
+ },
+ action: () => alert('Refresh data'),
+ },
+ ] as Array;
+ },
+ },
+
+ // tooltip plugin
+ externalResources: [new SlickCustomTooltip()],
+ customTooltip: {
+ observeAllTooltips: true,
+ },
+ };
+
+ setColumnDefinitions(columnDefinitions);
+ setGridOptions(gridOptions);
+ }
+
+ function clearGrouping() {
+ reactGridRef.current?.dataView?.setGrouping([]);
+ }
+
+ function collapseAllGroups() {
+ reactGridRef.current?.dataView?.collapseAllGroups();
+ }
+
+ function expandAllGroups() {
+ reactGridRef.current?.dataView?.expandAllGroups();
+ }
+
+ function groupByDuration() {
+ // you need to manually add the sort icon(s) in UI
+ reactGridRef.current?.slickGrid?.setSortColumns([{ columnId: 'duration', sortAsc: true }]);
+ reactGridRef.current?.dataView?.setGrouping({
+ getter: 'duration',
+ formatter: (g) => `Duration: ${g.value} (${g.count} items) `,
+ comparer: (a, b) => SortComparers.numeric(a.value, b.value, SortDirectionNumber.asc),
+ aggregators: [new Aggregators.Avg('percentComplete'), new Aggregators.Sum('cost')],
+ aggregateCollapsed: false,
+ lazyTotalsCalculation: true,
+ } as Grouping);
+ reactGridRef.current?.slickGrid?.invalidate(); // invalidate all rows and re-render
+ }
+
+ function loadData(count: number): ReportItem[] {
+ const tmpData: ReportItem[] = [];
+ for (let i = 0; i < count; i++) {
+ const randomDuration = Math.round(Math.random() * 100);
+ const randomYear = 2000 + Math.floor(Math.random() * 10);
+ const randomMonth = Math.floor(Math.random() * 11);
+ const randomDay = Math.floor(Math.random() * 29);
+ const randomPercent = Math.round(Math.random() * 100);
+
+ tmpData[i] = {
+ id: i,
+ title: 'Task ' + i,
+ duration: randomDuration,
+ cost: Math.round(Math.random() * 10000) / 100,
+ percentComplete: randomPercent,
+ start: new Date(randomYear, randomMonth, randomDay),
+ finish: new Date(randomYear, randomMonth + 1, randomDay),
+ };
+ }
+ return tmpData;
+ }
+
+ function toggleSubTitle() {
+ const newHideSubTitle = !hideSubTitle;
+ setHideSubTitle(newHideSubTitle);
+ const action = newHideSubTitle ? 'add' : 'remove';
+ document.querySelector('.subtitle')?.classList[action]('hidden');
+ reactGridRef.current?.resizerService.resizeGrid(0);
+ }
+
+ return !gridOptions ? (
+ ''
+ ) : (
+
+
+ Example 51: Menus with Slots
+
+ see
+
+ code
+
+
+ toggleSubTitle()}
+ >
+
+
+
+
+
+
+
+ Menu Slots Demo with Custom Renderer
+
+
+ Click on the menu buttons to see the new single slot functionality working across all menu types (Header Menu,
+ Cell Menu, Context Menu, Grid Menu):
+
+
+
+ Note: The demo focuses on the custom rendering capability via slotRenderer and
+ defaultMenuItemRenderer, which work across all menu plugins (SlickHeaderMenu, SlickCellMenu, SlickContextMenu,
+ SlickGridMenu). Also note that the keyboard shortcuts displayed in the menus (e.g., Alt+↑, F5) are for
+ demo purposes only and do not actually trigger any actions.
+
+
+
+
+
+
+ clearGrouping()}>
+ Clear grouping
+
+ collapseAllGroups()}>
+
+ Collapse all groups
+
+ expandAllGroups()}>
+
+ Expand all groups
+
+ groupByDuration()}
+ >
+ Group by Duration
+
+
+
+
+
+ reactGridReady($event.detail)}
+ />
+
+
+ );
+};
+
+export default Example51;
diff --git a/with-i18n-translate/src/examples/slickgrid/Example6.tsx b/with-i18n-translate/src/examples/slickgrid/Example6.tsx
index 33461d6..d6606f6 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example6.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example6.tsx
@@ -11,9 +11,7 @@ import { withTranslation } from 'react-i18next';
import {
Filters,
Formatters,
- OperatorType,
SlickgridReact,
- SortDirection,
type Column,
type CursorPageInfo,
type GridOption,
@@ -222,14 +220,14 @@ const Example6: React.FC = () => {
{ columnId: 'finish', width: 130 },
],
filters: [
- { columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal },
- { columnId: 'name', searchTerms: ['Joh*oe'], operator: OperatorType.startsWithEndsWith },
+ { columnId: 'gender', searchTerms: ['male'], operator: '=' },
+ { columnId: 'name', searchTerms: ['Joh*oe'], operator: 'StartsWithEndsWith' },
{ columnId: 'company', searchTerms: ['xyz'], operator: 'IN' },
- { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
+ { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: 'RangeInclusive' },
],
sorters: [
{ columnId: 'name', direction: 'asc' },
- { columnId: 'company', direction: SortDirection.DESC },
+ { columnId: 'company', direction: 'DESC' },
],
pagination: { pageNumber: isWithCursorRef.current ? 1 : 2, pageSize: 20 },
},
@@ -240,7 +238,7 @@ const Example6: React.FC = () => {
addLocaleIntoQuery: true,
extraQueryArguments: [{ field: 'userId', value: 123 }],
filterQueryOverride: ({ fieldName, columnDef, columnFilterOperator, searchValues }) => {
- if (columnFilterOperator === OperatorType.custom && columnDef?.id === 'name') {
+ if (columnFilterOperator === 'Custom' && columnDef?.id === 'name') {
return { field: fieldName, operator: 'Like', value: searchValues[0] };
}
return;
@@ -339,11 +337,11 @@ const Example6: React.FC = () => {
const presetHighestDay = `${currentYear}-02-15`;
reactGridRef.current?.filterService.updateFilters([
- { columnId: 'gender', searchTerms: ['female'], operator: OperatorType.equal },
- { columnId: 'name', searchTerms: ['Jane'], operator: OperatorType.startsWith },
+ { columnId: 'gender', searchTerms: ['female'], operator: '=' },
+ { columnId: 'name', searchTerms: ['Jane'], operator: 'StartsWith' },
{ columnId: 'company', searchTerms: ['acme'], operator: 'IN' },
- { columnId: 'billingAddressZip', searchTerms: ['11'], operator: OperatorType.greaterThanOrEqual },
- { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
+ { columnId: 'billingAddressZip', searchTerms: ['11'], operator: '>=' },
+ { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: 'RangeInclusive' },
]);
}
@@ -360,14 +358,14 @@ const Example6: React.FC = () => {
const presetHighestDay = `${currentYear}-02-15`;
reactGridRef.current?.filterService.updateFilters([
- { columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal },
- { columnId: 'name', searchTerms: ['Joh*oe'], operator: OperatorType.startsWithEndsWith },
+ { columnId: 'gender', searchTerms: ['male'], operator: '=' },
+ { columnId: 'name', searchTerms: ['Joh*oe'], operator: 'StartsWithEndsWith' },
{ columnId: 'company', searchTerms: ['xyz'], operator: 'IN' },
- { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
+ { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: 'RangeInclusive' },
]);
reactGridRef.current?.sortService.updateSorting([
{ columnId: 'name', direction: 'asc' },
- { columnId: 'company', direction: SortDirection.DESC },
+ { columnId: 'company', direction: 'DESC' },
]);
setTimeout(() => {
reactGridRef.current?.paginationService?.changeItemPerPage(20);
diff --git a/with-i18n-translate/src/examples/slickgrid/Example9.tsx b/with-i18n-translate/src/examples/slickgrid/Example9.tsx
index 64d4a06..966a6e8 100644
--- a/with-i18n-translate/src/examples/slickgrid/Example9.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/Example9.tsx
@@ -2,7 +2,6 @@ import i18next from 'i18next';
import React, { useEffect, useRef, useState } from 'react';
import { withTranslation } from 'react-i18next';
import {
- ExtensionName,
Filters,
Formatters,
SlickgridReact,
@@ -296,7 +295,7 @@ const Example9: React.FC = () => {
function toggleGridMenu(e: MouseEvent) {
if (reactGridRef.current?.extensionService) {
- const gridMenuInstance = reactGridRef.current.extensionService.getExtensionInstanceByName(ExtensionName.gridMenu);
+ const gridMenuInstance = reactGridRef.current.extensionService.getExtensionInstanceByName('gridMenu');
gridMenuInstance.showGridMenu(e, { dropSide: 'right' });
}
}
diff --git a/with-i18n-translate/src/examples/slickgrid/custom-inputEditor.tsx b/with-i18n-translate/src/examples/slickgrid/custom-inputEditor.tsx
index 2783267..593a5e5 100644
--- a/with-i18n-translate/src/examples/slickgrid/custom-inputEditor.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/custom-inputEditor.tsx
@@ -1,4 +1,4 @@
-import type { Column, ColumnEditor, Editor, EditorValidator, EditorValidationResult } from 'slickgrid-react';
+import type { Column, ColumnEditor, Editor, EditorValidationResult, EditorValidator } from 'slickgrid-react';
/*
* An example of a 'detached' editor.
diff --git a/with-i18n-translate/src/examples/slickgrid/custom-inputFilter.tsx b/with-i18n-translate/src/examples/slickgrid/custom-inputFilter.tsx
index 940e620..db1f53d 100644
--- a/with-i18n-translate/src/examples/slickgrid/custom-inputFilter.tsx
+++ b/with-i18n-translate/src/examples/slickgrid/custom-inputFilter.tsx
@@ -1,13 +1,12 @@
import {
+ emptyElement,
type Column,
type ColumnFilter,
- emptyElement,
type Filter,
type FilterArguments,
type FilterCallback,
type GridOption,
- OperatorType,
- type OperatorString,
+ type OperatorType,
type SearchTerm,
type SlickGrid,
} from 'slickgrid-react';
@@ -20,7 +19,7 @@ export class CustomInputFilter implements Filter {
searchTerms: SearchTerm[] = [];
columnDef!: Column;
callback!: FilterCallback;
- operator: OperatorType | OperatorString = OperatorType.equal;
+ operator: OperatorType = 'EQ';
/** Getter for the Filter Operator */
get columnFilter(): ColumnFilter {
diff --git a/with-i18n-translate/src/examples/slickgrid/example51.scss b/with-i18n-translate/src/examples/slickgrid/example51.scss
new file mode 100644
index 0000000..02bd247
--- /dev/null
+++ b/with-i18n-translate/src/examples/slickgrid/example51.scss
@@ -0,0 +1,145 @@
+body {
+ --slick-menu-item-height: 30px;
+ --slick-menu-line-height: 30px;
+ --slick-column-picker-item-height: 28px;
+ --slick-column-picker-line-height: 28px;
+ --slick-menu-item-border-radius: 4px;
+ --slick-menu-item-hover-border: 1px solid #148dff;
+ --slick-column-picker-item-hover-color: #fff;
+ --slick-column-picker-item-border-radius: 4px;
+ --slick-column-picker-item-hover-border: 1px solid #148dff;
+ --slick-menu-item-hover-color: #fff;
+ --slick-tooltip-background-color: #4c4c4c;
+ --slick-tooltip-color: #fff;
+ --slick-tooltip-font-size: 14px;
+ .slick-cell-menu,
+ .slick-context-menu,
+ .slick-grid-menu,
+ .slick-header-menu {
+ .slick-menu-item:hover:not(.slick-menu-item-disabled) {
+ color: #0a34b5;
+ }
+ }
+ .slick-menu-footer {
+ padding: 4px 6px;
+ border-top: 1px solid #c0c0c0;
+ }
+}
+
+
+.key-hint {
+ background: #eee;
+ border: 1px solid #ccc;
+ border-radius: 2px;
+ padding: 2px 4px;
+ font-size: 10px;
+ margin-left: 10px;
+ white-space: nowrap;
+ display: inline-flex;
+ align-items: center;
+ height: 20px;
+
+ &.beta,
+ &.danger,
+ &.warn {
+ color: white;
+ font-size: 8px;
+ font-weight: bold;
+ }
+ &.beta {
+ background: #4444ff;
+ border: 1px solid #5454ff;
+ }
+
+ &.danger {
+ background: #ff4444;
+ border: 1px solid #fb5a5a;
+ }
+
+ &.warn {
+ background: #ff9800;
+ border: 1px solid #fba321;
+ }
+}
+kbd {
+ background-color: #eee !important;
+ color: #202020 !important;
+}
+
+.edit-cell {
+ // background: #eee;
+ border: 1px solid #ccc;
+ border-radius: 2px;
+ padding: 2px 4px;
+ font-size: 10px;
+ margin-left: 10px;
+ display: inline-flex;
+ align-items: center;
+ height: 18px;
+}
+
+.export-timestamp {
+ background-color: #4c4c4c;
+ color: #fff;
+ padding: 8px;
+ border-radius: 4px;
+ position: absolute;
+ z-index: 999999;
+}
+
+.advanced-export-icon,
+.edit-cell-icon,
+.recalc-icon {
+ width: 20px;
+ height: 20px;
+ border-radius: 3px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-right: 4px;
+ transition: transform 0.2s;
+ color: white;
+ font-size: 10px;
+}
+.advanced-export-icon {
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+}
+.edit-cell-icon {
+ background: linear-gradient(135deg, #00c853 0%, #64dd17 100%);
+}
+.recalc-icon {
+ background: linear-gradient(135deg, #c800a3 0%, #a31189 100%);
+}
+
+.round-tag {
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ display: inline-block;
+ background: #44ff44;
+ box-shadow: 0 0 4px #44ff44;
+ margin-left: 10px;
+}
+
+.menu-item {
+ display: flex;
+ align-items: center;
+ flex: 1;
+ justify-content: space-between;
+
+ .menu-item-label.warn {
+ flex: 1;
+ color: #f09000;
+ }
+}
+.menu-item-icon {
+ margin-right: 4px;
+ font-size: 18px;
+ &.warn {
+ color: #ff9800;
+ }
+}
+
+.menu-item-label {
+ flex: 1;
+}
diff --git a/with-i18n-translate/src/examples/slickgrid/utilities.ts b/with-i18n-translate/src/examples/slickgrid/utilities.ts
index 647addd..ae78294 100644
--- a/with-i18n-translate/src/examples/slickgrid/utilities.ts
+++ b/with-i18n-translate/src/examples/slickgrid/utilities.ts
@@ -5,26 +5,31 @@ export function randomNumber(min: number, max: number, floor = true) {
export function showToast(msg: string, type: 'danger' | 'info' | 'warning', time = 2000) {
const divContainer = document.createElement('div');
+ divContainer.setAttribute('popover', '');
divContainer.className = `toast align-items-center text-bg-${type} border-0`;
divContainer.style.position = 'absolute';
- divContainer.style.left = '50%';
- divContainer.style.top = '20px';
- divContainer.style.transform = 'translate(-50%)';
divContainer.style.zIndex = '9999';
- divContainer.style.display = 'block';
-
- const divFlex = document.createElement('div');
- divFlex.className = 'd-flex align-items-center';
const divBody = document.createElement('div');
divBody.className = 'toast-body';
divBody.textContent = msg;
-
- divContainer.appendChild(divFlex);
- divFlex.appendChild(divBody);
+ divContainer.appendChild(divBody);
document.body.appendChild(divContainer);
- setTimeout(() => divContainer.remove(), time);
+ // When popover is supported, use it to display the message.
+ // Baseline 2024: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/showPopover
+ if (typeof divContainer.showPopover === 'function') {
+ divContainer.style.display = 'block';
+ divContainer.style.margin = '0 auto';
+ divContainer.style.marginTop = '20px';
+ divContainer.style.borderWidth = '0px';
+ divContainer.showPopover();
+ setTimeout(() => {
+ divContainer.hidePopover();
+ divContainer.remove();
+ }, time);
+ return;
+ }
}
export function zeroPadding(input: string | number) {
diff --git a/with-i18n-translate/yarn.lock b/with-i18n-translate/yarn.lock
index ade4027..33e5217 100644
--- a/with-i18n-translate/yarn.lock
+++ b/with-i18n-translate/yarn.lock
@@ -39,6 +39,15 @@
js-tokens "^4.0.0"
picocolors "^1.1.1"
+"@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c"
+ integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.28.5"
+ js-tokens "^4.0.0"
+ picocolors "^1.1.1"
+
"@babel/compat-data@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.7.tgz#b8479fe0018ef0ac87b6b7a5c6916fcd67ae2c9c"
@@ -49,6 +58,11 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.5.tgz#7d0658ec1a8420fc866d1df1b03bea0e79934c82"
integrity sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==
+"@babel/compat-data@^7.28.6":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d"
+ integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==
+
"@babel/core@^7.21.3":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.7.tgz#1b3d144157575daf132a3bc80b2b18e6e3ca6ece"
@@ -70,7 +84,7 @@
json5 "^2.2.3"
semver "^6.3.1"
-"@babel/core@^7.24.4", "@babel/core@^7.28.5":
+"@babel/core@^7.24.4":
version "7.28.5"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e"
integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==
@@ -91,6 +105,27 @@
json5 "^2.2.3"
semver "^6.3.1"
+"@babel/core@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322"
+ integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==
+ dependencies:
+ "@babel/code-frame" "^7.29.0"
+ "@babel/generator" "^7.29.0"
+ "@babel/helper-compilation-targets" "^7.28.6"
+ "@babel/helper-module-transforms" "^7.28.6"
+ "@babel/helpers" "^7.28.6"
+ "@babel/parser" "^7.29.0"
+ "@babel/template" "^7.28.6"
+ "@babel/traverse" "^7.29.0"
+ "@babel/types" "^7.29.0"
+ "@jridgewell/remapping" "^2.3.5"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
"@babel/generator@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.7.tgz#de86acbeb975a3e11ee92dd52223e6b03b479c56"
@@ -134,6 +169,17 @@
"@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
+"@babel/generator@^7.29.0":
+ version "7.29.1"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50"
+ integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==
+ dependencies:
+ "@babel/parser" "^7.29.0"
+ "@babel/types" "^7.29.0"
+ "@jridgewell/gen-mapping" "^0.3.12"
+ "@jridgewell/trace-mapping" "^0.3.28"
+ jsesc "^3.0.2"
+
"@babel/helper-compilation-targets@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz#11260ac3322dda0ef53edfae6e97b961449f5fa4"
@@ -156,6 +202,17 @@
lru-cache "^5.1.1"
semver "^6.3.1"
+"@babel/helper-compilation-targets@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25"
+ integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==
+ dependencies:
+ "@babel/compat-data" "^7.28.6"
+ "@babel/helper-validator-option" "^7.27.1"
+ browserslist "^4.24.0"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
"@babel/helper-globals@^7.28.0":
version "7.28.0"
resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674"
@@ -177,6 +234,14 @@
"@babel/traverse" "^7.27.1"
"@babel/types" "^7.27.1"
+"@babel/helper-module-imports@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c"
+ integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==
+ dependencies:
+ "@babel/traverse" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
"@babel/helper-module-transforms@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz#2ac9372c5e001b19bc62f1fe7d96a18cb0901d1a"
@@ -196,6 +261,15 @@
"@babel/helper-validator-identifier" "^7.27.1"
"@babel/traverse" "^7.28.3"
+"@babel/helper-module-transforms@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e"
+ integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.28.6"
+ "@babel/helper-validator-identifier" "^7.28.5"
+ "@babel/traverse" "^7.28.6"
+
"@babel/helper-plugin-utils@^7.27.1":
version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c"
@@ -265,6 +339,14 @@
"@babel/template" "^7.27.2"
"@babel/types" "^7.28.4"
+"@babel/helpers@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7"
+ integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==
+ dependencies:
+ "@babel/template" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
"@babel/highlight@^7.18.6":
version "7.18.6"
resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
@@ -312,6 +394,13 @@
dependencies:
"@babel/types" "^7.28.2"
+"@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6"
+ integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==
+ dependencies:
+ "@babel/types" "^7.29.0"
+
"@babel/plugin-transform-react-jsx-self@^7.27.1":
version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz#af678d8506acf52c577cac73ff7fe6615c85fc92"
@@ -361,6 +450,15 @@
"@babel/parser" "^7.27.2"
"@babel/types" "^7.27.1"
+"@babel/template@^7.28.6":
+ version "7.28.6"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57"
+ integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==
+ dependencies:
+ "@babel/code-frame" "^7.28.6"
+ "@babel/parser" "^7.28.6"
+ "@babel/types" "^7.28.6"
+
"@babel/traverse@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8"
@@ -413,6 +511,19 @@
"@babel/types" "^7.28.5"
debug "^4.3.1"
+"@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a"
+ integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==
+ dependencies:
+ "@babel/code-frame" "^7.29.0"
+ "@babel/generator" "^7.29.0"
+ "@babel/helper-globals" "^7.28.0"
+ "@babel/parser" "^7.29.0"
+ "@babel/template" "^7.28.6"
+ "@babel/types" "^7.29.0"
+ debug "^4.3.1"
+
"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.25.7":
version "7.25.7"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b"
@@ -454,6 +565,14 @@
"@babel/helper-string-parser" "^7.27.1"
"@babel/helper-validator-identifier" "^7.28.5"
+"@babel/types@^7.28.6", "@babel/types@^7.29.0":
+ version "7.29.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7"
+ integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==
+ dependencies:
+ "@babel/helper-string-parser" "^7.27.1"
+ "@babel/helper-validator-identifier" "^7.28.5"
+
"@epic-web/invariant@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@epic-web/invariant/-/invariant-1.0.0.tgz#1073e5dee6dd540410784990eb73e4acd25c9813"
@@ -688,17 +807,17 @@
"@eslint/core" "^0.17.0"
levn "^0.4.1"
-"@excel-builder-vanilla/types@^4.2.1":
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/@excel-builder-vanilla/types/-/types-4.2.1.tgz#663e913bb88087bde5bf42f0f8be9d1bd2762bfd"
- integrity sha512-AtVzHKfH7TtRTH7Yczwu6SMXYhmvO+W6H2L4ktg7JesK4cHSS7FinzFk+zkPWs2ROZEXYHLZxJTGY7OrhiOTjw==
+"@excel-builder-vanilla/types@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@excel-builder-vanilla/types/-/types-5.0.0.tgz#5c5ab00a13baa8a9d49ff4d5442c98db70f07311"
+ integrity sha512-k0qMo9+velvx2EJne0gwT1NacDRCIWdCHpwTu5hjuRKrr1BzKCiTqgBKUf9zL74HIU7dejoWl3wgguWrccTFXg==
dependencies:
fflate "^0.8.2"
-"@faker-js/faker@^10.2.0":
- version "10.2.0"
- resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-10.2.0.tgz#91028d4086969825795de331c305e8b91414bcb7"
- integrity sha512-rTXwAsIxpCqzUnZvrxVh3L0QA0NzToqWBLAhV+zDV3MIIwiQhAZHMdPCIaj5n/yADu/tyk12wIPgL6YHGXJP+g==
+"@faker-js/faker@^10.3.0":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-10.3.0.tgz#d56b68e4f1dd090152029fe91d2f8505389947f2"
+ integrity sha512-It0Sne6P3szg7JIi6CgKbvTZoMjxBZhcv91ZrqrNuaZQfB5WoqYYbzCUOq89YR+VY8juY9M1vDWmDDa2TzfXCw==
"@fnando/sparkline@^0.3.10":
version "0.3.10"
@@ -919,10 +1038,10 @@
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
-"@rolldown/pluginutils@1.0.0-beta.53":
- version "1.0.0-beta.53"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz#c57a5234ae122671aff6fe72e673a7ed90f03f87"
- integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==
+"@rolldown/pluginutils@1.0.0-rc.3":
+ version "1.0.0-rc.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz#8a88cc92a0f741befc7bc109cb1a4c6b9408e1c5"
+ integrity sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==
"@rollup/pluginutils@^5.2.0":
version "5.3.0"
@@ -1038,142 +1157,155 @@
resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
-"@slickgrid-universal/binding@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/binding/-/binding-9.13.0.tgz#ea4f3c7788d3943efe4f1659cf4ebdd33e3c149a"
- integrity sha512-/3mWCmmekDsW8dXhcaodCgmasD9WMeWNtcD/NKWCYmYERx52EDUOVNxWf8tcpCFlN+eV8smAnTxWGPFZG7Oxaw==
+"@slickgrid-universal/binding@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/binding/-/binding-10.0.0-beta.0.tgz#c88cbc256ead14073b56dd68dc2b9192899efaa2"
+ integrity sha512-Wnm554nAJ/ZtPCc40k0jnFPWiVKKAxlN8uSxMor72xNjF4bUGjx2+lgoEWNDREGSbIT+VjQgiPuREjO0wtOwJg==
-"@slickgrid-universal/common@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/common/-/common-9.13.0.tgz#1063f7cf7b6b95ced61cc0eb9c468894d2905c86"
- integrity sha512-azi6T/xQXFvzehMP3My33jlY2OgjPXf0qjDzqToe/90ijI/JKZQV99o7LUjHpqQAKpPGHpukiPZTV5az3gzvNA==
+"@slickgrid-universal/common@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/common/-/common-10.0.0-beta.0.tgz#90c591c698551aeece5c7a0f6f7951c701f5b978"
+ integrity sha512-3v8yztIrdO2PryD35LQ/EcFHugSHTz74TXR9D81WdjimNTCpKjMjQ2A1hsmStSg9OQX8DdmZgY9NygIpA7PuuQ==
dependencies:
- "@excel-builder-vanilla/types" "^4.2.1"
+ "@excel-builder-vanilla/types" "^5.0.0"
"@formkit/tempo" "^1.0.0"
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/event-pub-sub" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/event-pub-sub" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
"@types/sortablejs" "^1.15.9"
"@types/trusted-types" "^2.0.7"
autocompleter "^9.3.2"
dequal "^2.0.3"
- multiple-select-vanilla "^4.4.1"
- sortablejs "^1.15.6"
+ multiple-select-vanilla "^5.0.0"
+ sortablejs "^1.15.7"
un-flatten-tree "^2.0.12"
vanilla-calendar-pro "^3.1.0"
-"@slickgrid-universal/composite-editor-component@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/composite-editor-component/-/composite-editor-component-9.13.0.tgz#bb3f0a991d9c544d93a1fc75e04eeec542605d95"
- integrity sha512-MbD3dwaQf8z6ZLL2PJ0gu+9eMArQDuuo1cPTr8DuvulcPCzpQSARgp2koicFxUzBiRbpGVjGoqTdiyQbJ+9DAQ==
+"@slickgrid-universal/composite-editor-component@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/composite-editor-component/-/composite-editor-component-10.0.0-beta.0.tgz#cdc7f9f93450c966e3984c35abac30a68d439e2f"
+ integrity sha512-Jgcc5LyMZlB/kCaaOtZ4cZRdMIstAdoBibnT9+l/5nsnDNojX2ZavmuuvbF0jMmSAVwhL0S+DBAL9y9jGluLVg==
dependencies:
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
-"@slickgrid-universal/custom-footer-component@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-footer-component/-/custom-footer-component-9.13.0.tgz#f93d413630f6f69296a63e8b6643d90ec55e7539"
- integrity sha512-8rmWNMNZ+tdyCw8AjgsWwyLZQYjAe22guwWW4F/rzOPHRZdCiUX9b1CeHzPDTZWGS/DSULQuVsxbWME4JDwrrQ==
+"@slickgrid-universal/custom-footer-component@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-footer-component/-/custom-footer-component-10.0.0-beta.0.tgz#dcb35bbb30ee878b49cbc14df09312555ceff352"
+ integrity sha512-OQlLfhCjHvCUP0Cyk95J7zlPyDHM+H+RieyjhLP1XFu/n6wi/ryWSCxzb6QCWPqwRWaKgGAPtd+eJl/Bmx1Zkw==
dependencies:
"@formkit/tempo" "^1.0.0"
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
-
-"@slickgrid-universal/custom-tooltip-plugin@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-tooltip-plugin/-/custom-tooltip-plugin-9.13.0.tgz#fdbd8dc4d428be48a84183a8359255d654eb0c8c"
- integrity sha512-rBWRKpwcSYjFLRESghFKrXvrp7xYhZ27VNtl+wk9jeUpUnL1pWK95OvSMt4KugHQp98vprChmF+OYwJ/rvYdIQ==
- dependencies:
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
-
-"@slickgrid-universal/empty-warning-component@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/empty-warning-component/-/empty-warning-component-9.13.0.tgz#9c045abd78d97a90ac80bef24141869bf973f4f4"
- integrity sha512-11OQYqAFIQ8hKbj4i6Rh1WC9vFjaQqZ75fLSAJeRB+ow7TOa/M7PWP749Jk3A+V8hKhzIF0rNGZ5BZyMJQ5cQw==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
-
-"@slickgrid-universal/event-pub-sub@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/event-pub-sub/-/event-pub-sub-9.13.0.tgz#f221ddd5743143b5d532f00b2fb0a24048332372"
- integrity sha512-PHacS+HbROsiDid4WwA08lC6b8U+fn4NgEPRriG99DAyHTpGuJRCaZyhGkmuhSbUpcZ8IB6g0igcVWWW0c89gw==
- dependencies:
- "@slickgrid-universal/utils" "9.13.0"
-
-"@slickgrid-universal/excel-export@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/excel-export/-/excel-export-9.13.0.tgz#02f5f8cffb577b3a6350a23f1ad796457f076cee"
- integrity sha512-4AcDVTH+Atz1W2EGWaGtP4syPdza/FUs2mrTutB7/hBeUuDxCp2jXKTACkbYEGpSY3jfdL8JlKXt4R9EtpeO3w==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
- excel-builder-vanilla "^4.2.1"
-
-"@slickgrid-universal/graphql@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/graphql/-/graphql-9.13.0.tgz#a76f9638adb565ca4f597f79ea3534106769f0ba"
- integrity sha512-eVnWfIFd1KCjqrCHkByV/2s5iXSteZYbTSDM2HAb+lSw9gpLFbjBjBRjkwBgWus5LIgDXVqPXuhOwhWOST263A==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
-
-"@slickgrid-universal/odata@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/odata/-/odata-9.13.0.tgz#371df1665dbe27f633732b10a819e6047dd2c7ed"
- integrity sha512-u5Eq3kz0fwiDNr6Rm3hIcROKXlfyK97EMhOfFnIYH+D3q1ZI7MrXhcaRNsRcK+hDtvkXxpAkpTBoWID27NAnxg==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
-
-"@slickgrid-universal/pagination-component@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/pagination-component/-/pagination-component-9.13.0.tgz#acfbf6e77908bf8c8745a8123a02c707f44cec4c"
- integrity sha512-xa4HdrYll1Kd8a6BGFiHcMVnxokf5NlKf86QlxPWzSIcFLLZFCSdCSE1pO9KorPw3mi83BSTh9ykQTCP52QXzw==
- dependencies:
- "@slickgrid-universal/binding" "9.13.0"
- "@slickgrid-universal/common" "9.13.0"
-
-"@slickgrid-universal/pdf-export@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/pdf-export/-/pdf-export-9.13.0.tgz#49b7f96557b5c0f9c0cf0486bfc66bd551793e6a"
- integrity sha512-Q8UT+4zESiNMmDgQDNR0UX7OMPGz+THiICCb/JKkkUGQjyj+OPzs1TtVkbjPNdgXdk6dOB/EXc46T21TCCWo0Q==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
- jspdf "^4.0.0"
-
-"@slickgrid-universal/row-detail-view-plugin@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/row-detail-view-plugin/-/row-detail-view-plugin-9.13.0.tgz#4a78cc66cc8e8d0ced6e830bc34fbab0686430d9"
- integrity sha512-8DvLouWwdqFl2o/4iObUOhpCSYfPHVWbK0lLRBYD7bkQHbWNj5bvI9aQr8QY7bo5OTZcED7D8yG5fSSXKnmx/Q==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
-
-"@slickgrid-universal/rxjs-observable@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/rxjs-observable/-/rxjs-observable-9.13.0.tgz#2f53e8a3582628207d367ea366086e3bdf9907e7"
- integrity sha512-VntBUxja036QwC4u8TdSetmD1vw6gIt6eswhcteqNdJTTkbsMrVYNH3xPtxESRPE+JMn2fZnd9JMb2uEXs5BoQ==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+
+"@slickgrid-universal/custom-tooltip-plugin@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/custom-tooltip-plugin/-/custom-tooltip-plugin-10.0.0-beta.0.tgz#b7fd935dcc52687a913690727e4afb9ab6bd0bda"
+ integrity sha512-CkYA3gPcgXmzrrcvHpFkpH/Yg3z2cTF5DCEik7uE9nB9oxo4UijSYTSCaVqsImT5G/zhwNMBORw6vun94KQ4tA==
+ dependencies:
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+
+"@slickgrid-universal/empty-warning-component@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/empty-warning-component/-/empty-warning-component-10.0.0-beta.0.tgz#5f804a5909362e5f89fce76d7dfa5ef742bbfefa"
+ integrity sha512-qMBjdzLnqaOFguMPyuy8GXigotvySDLHunUcVQfsE/8rfOwO2/6PNhHiV99Gqa3joZeM2c/0YD+47bAEYGvqmw==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+
+"@slickgrid-universal/event-pub-sub@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/event-pub-sub/-/event-pub-sub-10.0.0-beta.0.tgz#07ce38822de0d36a2d806dbcc2e916e70eb15a1d"
+ integrity sha512-qgmXUHDEL/6TacoJgIInc/KRUjvw/KOmJz6Smv48agQ57/bViPQH3kYhkw7Ls4F6E56B349+SNLJBKsIl/EDfA==
+ dependencies:
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+
+"@slickgrid-universal/excel-export@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/excel-export/-/excel-export-10.0.0-beta.0.tgz#3d57b196878f9962450881740df38fa7fbbf569d"
+ integrity sha512-5JXoz70JlTZ0y5UDv/ejygDs6y7NTFeFA40ali6A3GeClX/X/2wh+XkDF1gTkD+K06J2m47eGmn/jtM3M8wf7w==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+ excel-builder-vanilla "^5.0.0"
+
+"@slickgrid-universal/graphql@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/graphql/-/graphql-10.0.0-beta.0.tgz#3e0f7e60af156db380099db17a1801fe2d5d39d8"
+ integrity sha512-q6gbU1o3wMg52s+N05J57U157KnJBNfS3zAX1Kqa1M+ZTIrsviY5KRu4aE0hNt0WbtSSTH88BYfyI+RbgxoVcQ==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+
+"@slickgrid-universal/odata@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/odata/-/odata-10.0.0-beta.0.tgz#35540644195d1980a62a61474aea3728bd717334"
+ integrity sha512-ldK29A7E3QHf7+qe8t8IK+0+/+9WoLNLIkLzJmLvkzcp3xF/IfyR+ANN/YhYXmvU8hFY0Lc4QP0nRl/rKQl8lg==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+
+"@slickgrid-universal/pagination-component@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/pagination-component/-/pagination-component-10.0.0-beta.0.tgz#b49e5e461e8fb70c0183fa2c6c76b97e5002c5f2"
+ integrity sha512-Nm0H91F+9o+wi5EVVSpeedYje6/pRsR7S67iyWkbBizBgn50Okzfl+kwwzKk5mjxvYo95HxTkjwxQH2G4xuPKw==
+ dependencies:
+ "@slickgrid-universal/binding" "10.0.0-beta.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+
+"@slickgrid-universal/pdf-export@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/pdf-export/-/pdf-export-10.0.0-beta.0.tgz#08fcf5621baba7687747d89ef72a3dbfe173ca32"
+ integrity sha512-uq/LNnwHgNNJb+m/QaYIuMsio56Bvj28SypZf4+OQ5DCLI7i+y92QuIbaBAJbKG+v+kw0gPiafeu6EnvL85Dlg==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+ jspdf "^4.1.0"
+
+"@slickgrid-universal/react-row-detail-plugin@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/react-row-detail-plugin/-/react-row-detail-plugin-10.0.0-beta.0.tgz#3369acf1ac17c150704133a133fe7249d606ec41"
+ integrity sha512-+FZStOANiQuKGWFfN+2XgdGhGTj0Fod9PrSO9FKSp1+PYCisXD8erCsw6cc7A1bxf2+0OKRoQPGFz/k22zByGw==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/event-pub-sub" "10.0.0-beta.0"
+ "@slickgrid-universal/row-detail-view-plugin" "10.0.0-beta.0"
+ react "^19.2.4"
+ react-dom "^19.2.4"
+ slickgrid-react "10.0.0-beta.0"
+ tslib "^2.8.1"
+
+"@slickgrid-universal/row-detail-view-plugin@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/row-detail-view-plugin/-/row-detail-view-plugin-10.0.0-beta.0.tgz#41775f1fc7b03b34a2f65e0825a52a737b254d99"
+ integrity sha512-MPXMQ4l2lzG2x2pZTWvBwjiMjoMSJBiiWZtZbu+oeTzQInreyEWg/EZ6SXhjYfl+qo6y4XW6dx7s9wr+msbqpQ==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
+
+"@slickgrid-universal/rxjs-observable@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/rxjs-observable/-/rxjs-observable-10.0.0-beta.0.tgz#56107e1b2db7d400c00efcc5961a40845e857b7f"
+ integrity sha512-pXgkKGRziMtD+fMSQBAi7Dlr5aPK0PEu1Xb4+MnR55kXg607hzrCgIYBxCjtqEB+FR8UeeROF+TUcHDjgsNs/g==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
rxjs "^7.8.2"
-"@slickgrid-universal/text-export@^9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/text-export/-/text-export-9.13.0.tgz#42ad1f74d6c631cc8b424a35e9e36e3c205980a4"
- integrity sha512-7G8oEZGXDgvc0sAfJPMqvt7DWIsExSq/pyBTqLdaCZ9K5ytwYy8b4SrluySx2meGWj2PZs2/qo5/RL1ExiVpTw==
+"@slickgrid-universal/text-export@^10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/text-export/-/text-export-10.0.0-beta.0.tgz#02348336860215c3f338869f84eb42791a55fa08"
+ integrity sha512-xU+yEgXOd6oRmYVo98wCrLnPvNXHKKzvFdWWYR9JkaGV3Omi7WlJ3XEly3AHWY8AGLd0vUAT9uHolr+ugvcmww==
dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
text-encoding-utf-8 "^1.0.2"
-"@slickgrid-universal/utils@9.13.0":
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/@slickgrid-universal/utils/-/utils-9.13.0.tgz#bb543ca9194388dd6aed4d1c3c9de0d2f9af4193"
- integrity sha512-0zFVPRb4o9B9BDDl2lukz3w3z1SRDAFP9IbXb30pivERBYsg/eRPlo2zTiY2YlUFExAsdlRfmofYbf/b4ytNRQ==
+"@slickgrid-universal/utils@10.0.0-beta.0":
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/@slickgrid-universal/utils/-/utils-10.0.0-beta.0.tgz#3f355b8d328b3d0d8b95f38f16bb36bfbfd0fefc"
+ integrity sha512-i0LvHbwYII6+CT1T/M3mxQSg3f5YLFOHWsG29Ssz2HZia4+eKeQMKigk4C9Ka+nPV4qynAE7o+b7w8jwlApDqA==
"@svgr/babel-plugin-add-jsx-attribute@8.0.0":
version "8.0.0"
@@ -1328,10 +1460,10 @@
resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
-"@types/node@^24.10.9":
- version "24.10.9"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.9.tgz#1aeb5142e4a92957489cac12b07f9c7fe26057d0"
- integrity sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==
+"@types/node@^24.10.13":
+ version "24.10.13"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.13.tgz#2fac25c0e30f3848e19912c3b8791a28370e9e07"
+ integrity sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==
dependencies:
undici-types "~7.16.0"
@@ -1350,10 +1482,10 @@
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.2.3.tgz#c1e305d15a52a3e508d54dca770d202cb63abf2c"
integrity sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==
-"@types/react@^19.2.10":
- version "19.2.10"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.10.tgz#f3ea799e6b4cebad6dfd231c238fc9de7652e2d2"
- integrity sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==
+"@types/react@^19.2.14":
+ version "19.2.14"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.14.tgz#39604929b5e3957e3a6fa0001dafb17c7af70bad"
+ integrity sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==
dependencies:
csstype "^3.2.2"
@@ -1372,111 +1504,111 @@
resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz"
integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==
-"@typescript-eslint/eslint-plugin@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.54.0.tgz#d8899e5c2eccf5c4a20d01c036a193753748454d"
- integrity sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==
+"@typescript-eslint/eslint-plugin@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.55.0.tgz#086d2ef661507b561f7b17f62d3179d692a0765f"
+ integrity sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==
dependencies:
"@eslint-community/regexpp" "^4.12.2"
- "@typescript-eslint/scope-manager" "8.54.0"
- "@typescript-eslint/type-utils" "8.54.0"
- "@typescript-eslint/utils" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/scope-manager" "8.55.0"
+ "@typescript-eslint/type-utils" "8.55.0"
+ "@typescript-eslint/utils" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
ignore "^7.0.5"
natural-compare "^1.4.0"
ts-api-utils "^2.4.0"
-"@typescript-eslint/parser@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.54.0.tgz#3d01a6f54ed247deb9982621f70e7abf1810bd97"
- integrity sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==
+"@typescript-eslint/parser@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.55.0.tgz#6eace4e9e95f178d3447ed1f17f3d6a5dfdb345c"
+ integrity sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==
dependencies:
- "@typescript-eslint/scope-manager" "8.54.0"
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/scope-manager" "8.55.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
debug "^4.4.3"
-"@typescript-eslint/project-service@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.54.0.tgz#f582aceb3d752544c8e1b11fea8d95d00cf9adc6"
- integrity sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==
+"@typescript-eslint/project-service@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.55.0.tgz#b8a71c06a625bdad481c24d5614b68e252f3ae9b"
+ integrity sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==
dependencies:
- "@typescript-eslint/tsconfig-utils" "^8.54.0"
- "@typescript-eslint/types" "^8.54.0"
+ "@typescript-eslint/tsconfig-utils" "^8.55.0"
+ "@typescript-eslint/types" "^8.55.0"
debug "^4.4.3"
-"@typescript-eslint/scope-manager@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz#307dc8cbd80157e2772c2d36216857415a71ab33"
- integrity sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==
+"@typescript-eslint/scope-manager@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.55.0.tgz#8a0752c31c788651840dc98f840b0c2ebe143b8c"
+ integrity sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==
dependencies:
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
-"@typescript-eslint/tsconfig-utils@8.54.0", "@typescript-eslint/tsconfig-utils@^8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz#71dd7ba1674bd48b172fc4c85b2f734b0eae3dbc"
- integrity sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==
+"@typescript-eslint/tsconfig-utils@8.55.0", "@typescript-eslint/tsconfig-utils@^8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.55.0.tgz#62f1d005419985e09d37a040b2f1450e4e805afa"
+ integrity sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==
-"@typescript-eslint/type-utils@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.54.0.tgz#64965317dd4118346c2fa5ee94492892200e9fb9"
- integrity sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==
+"@typescript-eslint/type-utils@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.55.0.tgz#195d854b3e56308ce475fdea2165313bb1190200"
+ integrity sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==
dependencies:
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
- "@typescript-eslint/utils" "8.54.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
+ "@typescript-eslint/utils" "8.55.0"
debug "^4.4.3"
ts-api-utils "^2.4.0"
-"@typescript-eslint/types@8.54.0", "@typescript-eslint/types@^8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.54.0.tgz#c12d41f67a2e15a8a96fbc5f2d07b17331130889"
- integrity sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==
+"@typescript-eslint/types@8.55.0", "@typescript-eslint/types@^8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.55.0.tgz#8449c5a7adac61184cac92dbf6315733569708c2"
+ integrity sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==
-"@typescript-eslint/typescript-estree@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz#3c7716905b2b811fadbd2114804047d1bfc86527"
- integrity sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==
+"@typescript-eslint/typescript-estree@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.55.0.tgz#c83ac92c11ce79bedd984937c7780a65e7f7b2e3"
+ integrity sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==
dependencies:
- "@typescript-eslint/project-service" "8.54.0"
- "@typescript-eslint/tsconfig-utils" "8.54.0"
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/visitor-keys" "8.54.0"
+ "@typescript-eslint/project-service" "8.55.0"
+ "@typescript-eslint/tsconfig-utils" "8.55.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/visitor-keys" "8.55.0"
debug "^4.4.3"
minimatch "^9.0.5"
semver "^7.7.3"
tinyglobby "^0.2.15"
ts-api-utils "^2.4.0"
-"@typescript-eslint/utils@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.54.0.tgz#c79a4bcbeebb4f571278c0183ed1cb601d84c6c8"
- integrity sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==
+"@typescript-eslint/utils@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.55.0.tgz#c1744d94a3901deb01f58b09d3478d811f96d619"
+ integrity sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==
dependencies:
"@eslint-community/eslint-utils" "^4.9.1"
- "@typescript-eslint/scope-manager" "8.54.0"
- "@typescript-eslint/types" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
+ "@typescript-eslint/scope-manager" "8.55.0"
+ "@typescript-eslint/types" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
-"@typescript-eslint/visitor-keys@8.54.0":
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz#0e4b50124b210b8600b245dd66cbad52deb15590"
- integrity sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==
+"@typescript-eslint/visitor-keys@8.55.0":
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.55.0.tgz#3d9a40fd4e3705c63d8fae3af58988add3ed464d"
+ integrity sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==
dependencies:
- "@typescript-eslint/types" "8.54.0"
+ "@typescript-eslint/types" "8.55.0"
eslint-visitor-keys "^4.2.1"
-"@vitejs/plugin-react@^5.1.2":
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz#46f47be184c05a18839cb8705d79578b469ac6eb"
- integrity sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==
+"@vitejs/plugin-react@^5.1.4":
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.4.tgz#5b477e060bf612a7394c4febacc5de33a219b0e4"
+ integrity sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==
dependencies:
- "@babel/core" "^7.28.5"
+ "@babel/core" "^7.29.0"
"@babel/plugin-transform-react-jsx-self" "^7.27.1"
"@babel/plugin-transform-react-jsx-source" "^7.27.1"
- "@rolldown/pluginutils" "1.0.0-beta.53"
+ "@rolldown/pluginutils" "1.0.0-rc.3"
"@types/babel__core" "^7.20.5"
react-refresh "^0.18.0"
@@ -2082,7 +2214,7 @@ doctrine@^2.1.0:
dependencies:
esutils "^2.0.2"
-dompurify@^3.2.4, dompurify@^3.3.1:
+dompurify@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.3.1.tgz#c7e1ddebfe3301eacd6c0c12a4af284936dbbb86"
integrity sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==
@@ -2739,10 +2871,10 @@ esutils@^2.0.2:
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-excel-builder-vanilla@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/excel-builder-vanilla/-/excel-builder-vanilla-4.2.1.tgz#c6c0f6ca8f7aaa0b3a660343f9359b3fe718d4dc"
- integrity sha512-lqQ7WtIvJcVfuGi64/QOIkjEoqypr8P9YIYiR1LdRXCuPvdC8olvf3EoGeFsorkJt4Ml56qBUDthQIYz83H1Qg==
+excel-builder-vanilla@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/excel-builder-vanilla/-/excel-builder-vanilla-5.0.0.tgz#5d5f416d7611c91fe3031b3a6e7f5729c38714fa"
+ integrity sha512-oLOWQ5/RTA2RMvO8PkXZc1sreOpjF7MGw4LNfJQdABPUYjwdY5qng/LVN1i9bVQ85jmZN3gD2NBu5VCChjnqrQ==
dependencies:
fflate "^0.8.2"
@@ -3002,10 +3134,10 @@ globals@^15.11.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-15.11.0.tgz#b96ed4c6998540c6fb824b24b5499216d2438d6e"
integrity sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==
-globals@^17.2.0:
- version "17.2.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-17.2.0.tgz#41d29408d6f5408457d2ef965d29215e3026779f"
- integrity sha512-tovnCz/fEq+Ripoq+p/gN1u7l6A7wwkoBT9pRCzTHzsD/LvADIzXZdjmRymh5Ztf0DYC3Rwg5cZRYjxzBmzbWg==
+globals@^17.3.0:
+ version "17.3.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-17.3.0.tgz#8b96544c2fa91afada02747cc9731c002a96f3b9"
+ integrity sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==
globalthis@^1.0.3:
version "1.0.3"
@@ -3169,10 +3301,10 @@ i18next-xhr-backend@*:
dependencies:
"@babel/runtime" "^7.5.5"
-i18next@^25.8.0:
- version "25.8.0"
- resolved "https://registry.yarnpkg.com/i18next/-/i18next-25.8.0.tgz#8b4ac516db016ebba70d2b68f5ba17e6ffcd4935"
- integrity sha512-urrg4HMFFMQZ2bbKRK7IZ8/CTE7D8H4JRlAwqA2ZwDRFfdd0K/4cdbNNLgfn9mo+I/h9wJu61qJzH7jCFAhUZQ==
+i18next@^25.8.7:
+ version "25.8.7"
+ resolved "https://registry.yarnpkg.com/i18next/-/i18next-25.8.7.tgz#84496cc96dff00fc8a502bb71ed095ed0f3d6930"
+ integrity sha512-ttxxc5+67S/0hhoeVdEgc1lRklZhdfcUSEPp1//uUG2NB88X3667gRsDar+ZWQFdysnOsnb32bcoMsa4mtzhkQ==
dependencies:
"@babel/runtime" "^7.28.4"
@@ -3632,10 +3764,10 @@ json5@^2.2.3:
resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-jspdf@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-4.0.0.tgz#3731c0a1a7d8afe28c681891236f8ad4a662d893"
- integrity sha512-w12U97Z6edKd2tXDn3LzTLg7C7QLJlx0BPfM3ecjK2BckUl9/81vZ+r5gK4/3KQdhAcEZhENUxRhtgYBj75MqQ==
+jspdf@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-4.1.0.tgz#4fb476251c8751c996175cfaac02d30fdf8c7b7a"
+ integrity sha512-xd1d/XRkwqnsq6FP3zH1Q+Ejqn2ULIJeDZ+FTKpaabVpZREjsJKRJwuokTNgdqOU+fl55KgbvgZ1pRTSWCP2kQ==
dependencies:
"@babel/runtime" "^7.28.4"
fast-png "^6.2.0"
@@ -3643,7 +3775,7 @@ jspdf@^4.0.0:
optionalDependencies:
canvg "^3.0.11"
core-js "^3.6.0"
- dompurify "^3.2.4"
+ dompurify "^3.3.1"
html2canvas "^1.0.0-rc.5"
"jsx-ast-utils@^2.4.1 || ^3.0.0":
@@ -3758,10 +3890,10 @@ ms@^2.1.1, ms@^2.1.3:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-multiple-select-vanilla@^4.4.1:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/multiple-select-vanilla/-/multiple-select-vanilla-4.4.1.tgz#bf42a38d17f3629e895ea19a1d82faa7fab8dd9f"
- integrity sha512-vG8Ea0ovHKrhi1FvpYlnNpDed1I6JzHyFoDtznRTH7A00y/t6MKGSKMs7cNp8mpXUnWb7WZr3/k0naFjg3qeCw==
+multiple-select-vanilla@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/multiple-select-vanilla/-/multiple-select-vanilla-5.0.0.tgz#a9a8b1fdd959169315bd2a9c940121b777010ab3"
+ integrity sha512-sdYPD/6C1zgfqFQsCHWUBYsM9+XWAw7Hrdf1EepcAOPxFTnT/wzGdbPTNAdZszf1l/AyHDi6QKhP9bqXiRI2wQ==
dependencies:
"@types/trusted-types" "^2.0.7"
@@ -4440,20 +4572,19 @@ side-channel@^1.1.0:
side-channel-map "^1.0.1"
side-channel-weakmap "^1.0.2"
-slickgrid-react@^9.13.0:
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/slickgrid-react/-/slickgrid-react-9.13.0.tgz#0527af73ea0726e8d006d4662ae92075abe51803"
- integrity sha512-nrFa8MuOyTeNSlKEA3yNcpBXHbIl0mmbTZnfFR7Kty6OPrvgUbMwxaOWR/UZ88qKbLte08McdlEifn65Z5bfVg==
- dependencies:
- "@slickgrid-universal/common" "9.13.0"
- "@slickgrid-universal/custom-footer-component" "9.13.0"
- "@slickgrid-universal/empty-warning-component" "9.13.0"
- "@slickgrid-universal/event-pub-sub" "9.13.0"
- "@slickgrid-universal/pagination-component" "9.13.0"
- "@slickgrid-universal/row-detail-view-plugin" "9.13.0"
- "@slickgrid-universal/utils" "9.13.0"
+slickgrid-react@10.0.0-beta.0, slickgrid-react@^10.0.0-beta.0:
+ version "10.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/slickgrid-react/-/slickgrid-react-10.0.0-beta.0.tgz#f5fbedb062916f2a4780652427903db9082c97a0"
+ integrity sha512-aEaA+/x33f+0Nc57vr9S5KXAGwCJQSASxaoFCVq5k7S8IEEwKN33QY2ynE+RQAi22QR8ZmQ6x+EZ7TfHgkgQVg==
+ dependencies:
+ "@slickgrid-universal/common" "10.0.0-beta.0"
+ "@slickgrid-universal/custom-footer-component" "10.0.0-beta.0"
+ "@slickgrid-universal/empty-warning-component" "10.0.0-beta.0"
+ "@slickgrid-universal/event-pub-sub" "10.0.0-beta.0"
+ "@slickgrid-universal/pagination-component" "10.0.0-beta.0"
+ "@slickgrid-universal/utils" "10.0.0-beta.0"
dequal "^2.0.3"
- sortablejs "^1.15.6"
+ sortablejs "^1.15.7"
snake-case@^3.0.4:
version "3.0.4"
@@ -4463,10 +4594,10 @@ snake-case@^3.0.4:
dot-case "^3.0.4"
tslib "^2.0.3"
-sortablejs@^1.15.6:
- version "1.15.6"
- resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.6.tgz#ff93699493f5b8ab8d828f933227b4988df1d393"
- integrity sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==
+sortablejs@^1.15.7:
+ version "1.15.7"
+ resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.7.tgz#83a0bddc472117ee328dea20b2e6f490fed20f86"
+ integrity sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==
"source-map-js@>=0.6.2 <2.0.0":
version "1.0.2"
@@ -4704,6 +4835,11 @@ tslib@^2.0.3, tslib@^2.1.0:
resolved "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz"
integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==
+tslib@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
@@ -4839,15 +4975,15 @@ typed-array-length@^1.0.7:
possible-typed-array-names "^1.0.0"
reflect.getprototypeof "^1.0.6"
-typescript-eslint@^8.54.0:
- version "8.54.0"
- resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.54.0.tgz#f4ef3b8882a5ddc2a41968e014194c178ab23f6a"
- integrity sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==
+typescript-eslint@^8.55.0:
+ version "8.55.0"
+ resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.55.0.tgz#abae8295c5f0f82f816218113a46e89bc30c3de2"
+ integrity sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==
dependencies:
- "@typescript-eslint/eslint-plugin" "8.54.0"
- "@typescript-eslint/parser" "8.54.0"
- "@typescript-eslint/typescript-estree" "8.54.0"
- "@typescript-eslint/utils" "8.54.0"
+ "@typescript-eslint/eslint-plugin" "8.55.0"
+ "@typescript-eslint/parser" "8.55.0"
+ "@typescript-eslint/typescript-estree" "8.55.0"
+ "@typescript-eslint/utils" "8.55.0"
typescript@^5.9.3:
version "5.9.3"
@@ -4925,10 +5061,10 @@ vite-plugin-svgr@^4.5.0:
"@svgr/core" "^8.1.0"
"@svgr/plugin-jsx" "^8.1.0"
-vite-tsconfig-paths@^6.0.5:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.0.5.tgz#5bcbb44d6ae0d12fe42f5915a6ad9846b0ed7805"
- integrity sha512-f/WvY6ekHykUF1rWJUAbCU7iS/5QYDIugwpqJA+ttwKbxSbzNlqlE8vZSrsnxNQciUW+z6lvhlXMaEyZn9MSig==
+vite-tsconfig-paths@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.1.tgz#d5c28cba79c89ebf76489ef1040024b21df6da3a"
+ integrity sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==
dependencies:
debug "^4.1.1"
globrex "^0.1.2"