From 98ec72378ccaffe67005bc1df591e6787692392b Mon Sep 17 00:00:00 2001 From: Bernie Sumption Date: Tue, 24 Feb 2026 12:06:42 +0000 Subject: [PATCH 1/3] AG-16789 restore compatibility with 35.0 window.agStyleInjectionState (#13171) --- .../ag-grid-community/.dependency-cruiser.js | 2 +- .../src/agStack/theming/inject.ts | 46 +++++++++++++------ 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/packages/ag-grid-community/.dependency-cruiser.js b/packages/ag-grid-community/.dependency-cruiser.js index 8f69348c548..d087eb5c3e9 100644 --- a/packages/ag-grid-community/.dependency-cruiser.js +++ b/packages/ag-grid-community/.dependency-cruiser.js @@ -8,7 +8,7 @@ module.exports = { severity: 'error', from: { path: ['^src/agStack/'] }, to: { - pathNot: ['^src/agStack/'], + pathNot: ['^src/agStack/', '^src/version\\.ts$'], }, }, ], diff --git a/packages/ag-grid-community/src/agStack/theming/inject.ts b/packages/ag-grid-community/src/agStack/theming/inject.ts index bda49bf2a55..256a4751dd6 100644 --- a/packages/ag-grid-community/src/agStack/theming/inject.ts +++ b/packages/ag-grid-community/src/agStack/theming/inject.ts @@ -1,3 +1,4 @@ +import { VERSION } from '../../version'; import type { IEnvironment } from '../interfaces/iEnvironment'; import { sharedCSS } from './shared/shared.css-GENERATED'; @@ -45,7 +46,8 @@ export const _injectGlobalCSS = ( if (nonce) { el.setAttribute('nonce', nonce); } - el.dataset.agGlobalCss = debugId; + el.dataset.agCss = debugId; + el.dataset.agCssVersion = VERSION; el.textContent = css; const newInjection: InjectedStyle = { css, el, priority, isParams }; @@ -155,19 +157,35 @@ type InjectionState = { grids: Map; }; +// IMPORTANT: this global API on the window object must remain constant across +// versions. Each version is free to change the structure of InjectionState, but +// the contract of "agStyleInjectionVersions" is that it is map of version to +// that version's state. type WindowState = { - agStyleInjectionState?: InjectionState; + agStyleInjectionVersions?: Map; }; -// AG-14716 - for customers using module federation, there may be many -// instances of this module, but we want to ensure that there is only -// one instance of the container to injection map per window otherwise -// unmounting any grid instance will clear all styles from the page -// resulting in unstyled grids -const injectionState: InjectionState = ((typeof window === 'object' - ? (window as WindowState) - : {} -).agStyleInjectionState ??= { - map: new WeakMap(), - grids: new Map(), -}); +// When many copies of the grid are loaded (either due to module federation or +// just multiple scripts each embedding a copy of the library), there may be +// many instances of this module, which may be different versions or not. Our +// requirement is that all grid instances sharing the same style context (the +// main document or any one shadow DOM) must have exactly the same version. If +// two independent modules share the same version, they will share the same +// InjectionState and cooperate on inserting the correct styles. Different +// versions get their own state, meaning that they will insert their own CSS. +// Provided that different versions never share style contexts this will not +// cause issues. If they do, both versions' styles will be injected and the +// result will be obvious in development tools because of the +// data-ag-css-version attribute on each style element. +const injectionState: InjectionState = (() => { + const versionMap = ((globalThis as WindowState).agStyleInjectionVersions ??= new Map()); + let state = versionMap.get(VERSION); + if (!state) { + state = { + map: new WeakMap(), + grids: new Map(), + }; + versionMap.set(VERSION, state); + } + return state; +})(); From 0e75b7a41e18d2d0903d698e07c4f6b9656a4d4e Mon Sep 17 00:00:00 2001 From: Stephen Cooper Date: Tue, 24 Feb 2026 12:47:02 +0000 Subject: [PATCH 2/3] AG-16788 Update Rich select docs (#13191) * Stash initial page split * Adding links to doc pages * Apply standard approach to docs * fix link --- .../src/content/docs-nav/nav.json | 36 +- .../index.mdoc | 2 - .../rich-select-async-values}/example.spec.ts | 0 .../rich-select-async-values}/index.html | 0 .../rich-select-async-values/main.ts | 17 +- .../example.spec.ts | 0 .../rich-select-full-async-values}/index.html | 0 .../rich-select-full-async-values/main.ts | 1 + .../example.spec.ts | 0 .../index.html | 0 .../rich-select-paged-async-filtering/main.ts | 1 + .../example.spec.ts | 0 .../index.html | 0 .../rich-select-paged-async-values/main.ts | 1 + .../index.mdoc | 129 +++++++ .../_component-interface-angular.mdoc | 0 .../_component-interface-javascript.mdoc | 0 .../_component-interface-react.mdoc | 0 .../_component-interface-vue.mdoc | 0 .../rich-select-allow-typing/colors.ts | 0 .../colour-cell-renderer.component_angular.ts | 0 .../colourCellRenderer_reactFunctionalTs.tsx | 0 .../colourCellRenderer_typescript.ts | 0 .../colourCellRenderer_vue3.ts | 0 .../rich-select-allow-typing}/example.spec.ts | 0 .../rich-select-allow-typing}/index.html | 0 .../rich-select-allow-typing/main.ts | 0 .../rich-select-cell-renderer/colors.ts | 0 .../colour-cell-renderer.component_angular.ts | 0 .../colourCellRenderer_reactFunctionalTs.tsx | 0 .../colourCellRenderer_typescript.ts | 0 .../colourCellRenderer_vue3.ts | 0 .../example.spec.ts | 0 .../rich-select-cell-renderer}/index.html | 0 .../rich-select-cell-renderer/main.ts | 0 .../rich-select-complex-objects/colors.ts | 0 .../example.spec.ts | 0 .../rich-select-complex-objects}/index.html | 0 .../rich-select-complex-objects/main.ts | 0 .../example.spec.ts | 0 .../rich-select-format-values}/index.html | 0 .../rich-select-format-values/main.ts | 0 .../rich-select-multi-select/colors.ts | 0 .../colour-cell-renderer.component_angular.ts | 0 .../colourCellRenderer_reactFunctionalTs.tsx | 0 .../colourCellRenderer_typescript.ts | 0 .../colourCellRenderer_vue3.ts | 0 .../rich-select-multi-select}/example.spec.ts | 0 .../rich-select-multi-select/index.html | 0 .../rich-select-multi-select/main.ts | 0 .../rich-select-multi-select/style.css | 0 .../rich-select-search-values/colors.ts | 0 .../rich-select-search-values/example.spec.ts | 0 .../rich-select-search-values/index.html | 0 .../rich-select-search-values/main.ts | 10 - .../index.mdoc | 161 +++++++++ .../colour-cell-renderer.component_angular.ts | 38 -- .../colourCellRenderer_reactFunctionalTs.tsx | 16 - .../colourCellRenderer_typescript.ts | 31 -- .../colourCellRenderer_vue3.ts | 8 - .../index.mdoc | 325 +----------------- .../provided-cell-editors-select/index.mdoc | 4 +- .../rich-select.json | 25 +- 63 files changed, 362 insertions(+), 443 deletions(-) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-allow-typing => provided-cell-editors-rich-select-async/_examples/rich-select-async-values}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-allow-typing => provided-cell-editors-rich-select-async/_examples/rich-select-async-values}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-async}/_examples/rich-select-async-values/main.ts (76%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-async-values => provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-async-values => provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-async}/_examples/rich-select-full-async-values/main.ts (97%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-cell-renderer => provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-cell-renderer => provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-async}/_examples/rich-select-paged-async-filtering/main.ts (98%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-complex-objects => provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-complex-objects => provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-async}/_examples/rich-select-paged-async-values/main.ts (98%) create mode 100644 documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/index.mdoc rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_component-interface-angular.mdoc (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_component-interface-javascript.mdoc (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_component-interface-react.mdoc (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_component-interface-vue.mdoc (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-allow-typing/colors.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-allow-typing/colour-cell-renderer.component_angular.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-allow-typing/colourCellRenderer_reactFunctionalTs.tsx (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-allow-typing/colourCellRenderer_typescript.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-allow-typing/colourCellRenderer_vue3.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-format-values => provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-format-values => provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-allow-typing/main.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-cell-renderer/colors.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-cell-renderer/colour-cell-renderer.component_angular.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-cell-renderer/colourCellRenderer_reactFunctionalTs.tsx (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-cell-renderer/colourCellRenderer_typescript.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-cell-renderer/colourCellRenderer_vue3.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-full-async-values => provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-full-async-values => provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-cell-renderer/main.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-complex-objects/colors.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-multi-select => provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering => provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-complex-objects/main.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering => provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-paged-async-values => provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values}/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-format-values/main.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/colors.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/colour-cell-renderer.component_angular.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/colourCellRenderer_reactFunctionalTs.tsx (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/colourCellRenderer_typescript.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/colourCellRenderer_vue3.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select/_examples/rich-select-paged-async-values => provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select}/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/main.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-multi-select/style.css (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-search-values/colors.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-search-values/example.spec.ts (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-search-values/index.html (100%) rename documentation/ag-grid-docs/src/content/docs/{provided-cell-editors-rich-select => provided-cell-editors-rich-select-customisation}/_examples/rich-select-search-values/main.ts (81%) create mode 100644 documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/index.mdoc delete mode 100644 documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colour-cell-renderer.component_angular.ts delete mode 100644 documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_reactFunctionalTs.tsx delete mode 100644 documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_typescript.ts delete mode 100644 documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_vue3.ts diff --git a/documentation/ag-grid-docs/src/content/docs-nav/nav.json b/documentation/ag-grid-docs/src/content/docs-nav/nav.json index 7c8563fd330..12f63c9b52c 100644 --- a/documentation/ag-grid-docs/src/content/docs-nav/nav.json +++ b/documentation/ag-grid-docs/src/content/docs-nav/nav.json @@ -1031,17 +1031,6 @@ "title": "Large Text Editor", "path": "provided-cell-editors-large-text" }, - { - "type": "item", - "title": "Select Editor", - "path": "provided-cell-editors-select" - }, - { - "type": "item", - "title": "Rich Select Editor", - "path": "provided-cell-editors-rich-select", - "isEnterprise": true - }, { "type": "item", "title": "Number Editor", @@ -1056,6 +1045,31 @@ "type": "item", "title": "Checkbox Editor", "path": "provided-cell-editors-checkbox" + }, + { + "type": "item", + "title": "Select Editor", + "path": "provided-cell-editors-select" + }, + { + "type": "item", + "title": "Rich Select Editor", + "path": "provided-cell-editors-rich-select", + "isEnterprise": true, + "children": [ + { + "type": "item", + "title": "Customisation", + "path": "provided-cell-editors-rich-select-customisation", + "isEnterprise": true + }, + { + "type": "item", + "title": "Async Values", + "path": "provided-cell-editors-rich-select-async", + "isEnterprise": true + } + ] } ] }, diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-large-text/index.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-large-text/index.mdoc index bdbefd5ef6e..acc6a02d893 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-large-text/index.mdoc +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-large-text/index.mdoc @@ -55,5 +55,3 @@ columnDefs: [ ## API Reference {% interfaceDocumentation interfaceName="ILargeTextEditorParams" names=["maxLength","rows","cols"] /%} - -Continue to the next section: [Select Cell Editor](./provided-cell-editors-select/). diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-async-values/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-async-values/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-async-values/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-async-values/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-async-values/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-async-values/main.ts similarity index 76% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-async-values/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-async-values/main.ts index e2f4f2d2fb9..19cfec456df 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-async-values/main.ts +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-async-values/main.ts @@ -1,10 +1,4 @@ -import type { - ColDef, - GridApi, - GridOptions, - IRichCellEditorParams, - RichCellEditorValuesCallbackParams, -} from 'ag-grid-community'; +import type { ColDef, GridApi, GridOptions, IRichCellEditorParams } from 'ag-grid-community'; import { ClientSideRowModelModule, ModuleRegistry, @@ -28,18 +22,13 @@ function getRandomNumber(min: number, max: number) { return Math.floor(Math.random() * (max - min + 1) + min); } -function getValueFromServer(_params: RichCellEditorValuesCallbackParams): Promise { - return new Promise((resolve) => { - setTimeout(() => resolve(languages), 1000); - }); -} - const columnDefs: ColDef[] = [ { field: 'language', cellEditor: 'agRichSelectCellEditor', cellEditorParams: { - values: getValueFromServer, + // Simulates an async request to a server + values: (_params) => fetch('/api/languages').then((res) => res.json()), } as IRichCellEditorParams, }, ]; diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-async-values/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-async-values/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-async-values/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-async-values/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-full-async-values/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values/main.ts similarity index 97% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-full-async-values/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values/main.ts index 61ef7d1a9f7..b3ef29b431b 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-full-async-values/main.ts +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-full-async-values/main.ts @@ -30,6 +30,7 @@ function getRandomNumber(min: number, max: number) { function getValueFromServer(params: RichCellEditorValuesCallbackParams): Promise { const search = params.search?.toLowerCase() ?? ''; + // Simulates an async request to a server return new Promise((resolve) => { console.log(`Grid requested \`${search}\` from server.`); setTimeout(() => { diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering/main.ts similarity index 98% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering/main.ts index 95b99b2f058..a76b84279cd 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering/main.ts +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-filtering/main.ts @@ -34,6 +34,7 @@ function getFilteredValuePageFromServer( ): Promise> { const search = params.search.toLowerCase(); + // Simulates an async request to a server return new Promise((resolve) => { setTimeout(() => { const filtered = search diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-values/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values/main.ts similarity index 98% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-values/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values/main.ts index 31afd2cbc2e..b5c45f74638 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-values/main.ts +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/_examples/rich-select-paged-async-values/main.ts @@ -32,6 +32,7 @@ function getRandomNumber(min: number, max: number) { function getValuePageFromServer( params: RichCellEditorValuesPageParams ): Promise> { + // Simulates an async request to a server return new Promise((resolve) => { setTimeout(() => { const pageValues = languages.slice(params.startRow, params.endRow); diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/index.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/index.mdoc new file mode 100644 index 00000000000..d494c5f6d92 --- /dev/null +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-async/index.mdoc @@ -0,0 +1,129 @@ +--- +title: "Rich Select Cell Editor - Async Values" +enterprise: true +--- + +The Rich Select Cell Editor supports loading values asynchronously, including paged loading and server-side filtering. + +## Async Values + +List values can be provided asynchronously to the editor as shown below: + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["values"] config={ "description": "" } /%} + +{% gridExampleRunner title="Rich Select Async Values" name="rich-select-async-values" /%} + +```js +columnDefs: [ + { + field: 'language', + cellEditor: 'agRichSelectCellEditor', + cellEditorParams: { + values: (_params) => fetch('/api/languages').then((res) => res.json()), + } + } +] +``` + +## Paged Async Values + +For large datasets, `valuesPage` avoids loading all items at once and instead loads values on demand based on user scroll and interactions. `valuesPageInitialStartRow` can be used to set the initial position. The `valuesPage` callback should return a value that conforms to the `RichCellEditorValuesPageResult` interface. + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["valuesPage", "valuesPageInitialStartRow", "valuesPageSize", "valuesPageLoadThreshold"] config={ "description": "" } /%} + +{% gridExampleRunner title="Rich Select Paged Async Values" name="rich-select-paged-async-values" /%} + +```js +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + cellEditorParams: { + valuesPage: (params) : Promise> { + return fetch(`/api/languages? + startRow=${params.startRow} + &endRow=${params.endRow}`) + .then((res) => res.json()); + }, + valuesPageInitialStartRow: (value) => getRowForSelectedValue(value), + valuesPageSize: 100, + valuesPageLoadThreshold: 10 + } + } +] +``` + +## Async Filtering + +For advanced filtering scenarios, combine async `values` callback, `allowTyping`, and `filterListAsync` to enable async filtering. + +When `filterListAsync` is set to `true`, the cell editor behaves as follows: + +- It calls the `values` callback with the current search term. +- It delays the search request by 300ms (this can be adjusted using `searchDebounceDelay`) to avoid excessive calls. +- A loading indicator appears while the network request is in progress. +- Once the promise resolves, the dropdown is updated with the filtered results. + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["filterListAsync", "searchDebounceDelay", "values"] config={ "description": "" } /%} + +This is shown in the example below: + +{% gridExampleRunner title="Rich Select Async Filtering" name="rich-select-full-async-values" /%} + +```js +columnDefs: [ + { + field: 'language', + cellEditor: 'agRichSelectCellEditor', + cellEditorParams: { + allowTyping: true, + filterList: true, + filterListAsync: true, + values: (params): Promise { + return fetch(`/api/languages?search=${encodeURIComponent(params.search)}`) + .then(res => res.json()) + .then(data => data.items as string[]) + } + } +] +``` + +## Paged Async Filtering + +For very large, server-backed datasets, combine async filtering with `valuesPage` so filtered results are also loaded incrementally. +`valuesPageInitialStartRow` is only used for the initial unfiltered load; once the user types, filtered paging starts from row `0`. + +In this mode each request includes: + +- `search` for the current filter text. +- `startRow` and `endRow` for range-based pagination. +- `cursor` (optional) for cursor-based forward pagination APIs (`undefined` on the first request, then replayed from the previous response). + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["filterListAsync", "valuesPage", "valuesPageInitialStartRow", "valuesPageSize", "valuesPageLoadThreshold"] config={ "description": "" } /%} + +{% gridExampleRunner title="Rich Select Paged Async Filtering" name="rich-select-paged-async-filtering" /%} + +```js +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + cellEditorParams: { + allowTyping: true, + filterList: true, + filterListAsync: true, + valuesPageInitialStartRow: (value) => getRowForSelectedValue(value), + valuesPage: (params): Promise> { + return fetch( + `/api/languages + ?search=${encodeURIComponent(params.search)} + &startRow=${params.startRow} + &endRow=${params.endRow}` + ).then((res) => res.json()); + }, + } + } +] +``` + +## API + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" /%} diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-angular.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-angular.mdoc similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-angular.mdoc rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-angular.mdoc diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-javascript.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-javascript.mdoc similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-javascript.mdoc rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-javascript.mdoc diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-react.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-react.mdoc similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-react.mdoc rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-react.mdoc diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-vue.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-vue.mdoc similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_component-interface-vue.mdoc rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_component-interface-vue.mdoc diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colors.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colors.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colors.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colors.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colour-cell-renderer.component_angular.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colour-cell-renderer.component_angular.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colour-cell-renderer.component_angular.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colour-cell-renderer.component_angular.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colourCellRenderer_reactFunctionalTs.tsx b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colourCellRenderer_reactFunctionalTs.tsx similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colourCellRenderer_reactFunctionalTs.tsx rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colourCellRenderer_reactFunctionalTs.tsx diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colourCellRenderer_typescript.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colourCellRenderer_typescript.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colourCellRenderer_typescript.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colourCellRenderer_typescript.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colourCellRenderer_vue3.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colourCellRenderer_vue3.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/colourCellRenderer_vue3.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/colourCellRenderer_vue3.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-format-values/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-format-values/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-format-values/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-format-values/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/main.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-allow-typing/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-allow-typing/main.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colors.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colors.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colors.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colors.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colour-cell-renderer.component_angular.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colour-cell-renderer.component_angular.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colour-cell-renderer.component_angular.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colour-cell-renderer.component_angular.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colourCellRenderer_reactFunctionalTs.tsx b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colourCellRenderer_reactFunctionalTs.tsx similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colourCellRenderer_reactFunctionalTs.tsx rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colourCellRenderer_reactFunctionalTs.tsx diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colourCellRenderer_typescript.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colourCellRenderer_typescript.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colourCellRenderer_typescript.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colourCellRenderer_typescript.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colourCellRenderer_vue3.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colourCellRenderer_vue3.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/colourCellRenderer_vue3.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/colourCellRenderer_vue3.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-full-async-values/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-full-async-values/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-full-async-values/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-full-async-values/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/main.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-cell-renderer/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-cell-renderer/main.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/colors.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/colors.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/colors.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/colors.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/main.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-complex-objects/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-complex-objects/main.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-filtering/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-values/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-values/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-format-values/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values/main.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-format-values/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-format-values/main.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colors.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colors.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colors.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colors.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colour-cell-renderer.component_angular.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colour-cell-renderer.component_angular.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colour-cell-renderer.component_angular.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colour-cell-renderer.component_angular.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colourCellRenderer_reactFunctionalTs.tsx b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colourCellRenderer_reactFunctionalTs.tsx similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colourCellRenderer_reactFunctionalTs.tsx rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colourCellRenderer_reactFunctionalTs.tsx diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colourCellRenderer_typescript.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colourCellRenderer_typescript.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colourCellRenderer_typescript.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colourCellRenderer_typescript.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colourCellRenderer_vue3.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colourCellRenderer_vue3.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/colourCellRenderer_vue3.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/colourCellRenderer_vue3.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-values/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-paged-async-values/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/main.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/main.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/style.css b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/style.css similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-multi-select/style.css rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-multi-select/style.css diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colors.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/colors.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colors.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/colors.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/example.spec.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/example.spec.ts similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/example.spec.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/example.spec.ts diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/index.html b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/index.html similarity index 100% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/index.html rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/index.html diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/main.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/main.ts similarity index 81% rename from documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/main.ts rename to documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/main.ts index 717b963dcad..8eb407b88c2 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/main.ts +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/_examples/rich-select-search-values/main.ts @@ -9,7 +9,6 @@ import { import { RichSelectModule } from 'ag-grid-enterprise'; import { colors } from './colors'; -import { ColourCellRenderer } from './colourCellRenderer_typescript'; ModuleRegistry.registerModules([ TextEditorModule, @@ -22,36 +21,27 @@ const columnDefs: ColDef[] = [ { headerName: 'Fuzzy Search', field: 'color', - cellRenderer: ColourCellRenderer, cellEditor: 'agRichSelectCellEditor', cellEditorParams: { values: colors, - cellRenderer: ColourCellRenderer, - valueListMaxHeight: 220, } as IRichCellEditorParams, }, { headerName: 'Match Search', field: 'color', - cellRenderer: ColourCellRenderer, cellEditor: 'agRichSelectCellEditor', cellEditorParams: { values: colors, - cellRenderer: ColourCellRenderer, searchType: 'match', - valueListMaxHeight: 220, } as IRichCellEditorParams, }, { headerName: 'Match Any Search', field: 'color', - cellRenderer: ColourCellRenderer, cellEditor: 'agRichSelectCellEditor', cellEditorParams: { values: colors, - cellRenderer: ColourCellRenderer, searchType: 'matchAny', - valueListMaxHeight: 220, } as IRichCellEditorParams, }, ]; diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/index.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/index.mdoc new file mode 100644 index 00000000000..1c28dcaf3d8 --- /dev/null +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select-customisation/index.mdoc @@ -0,0 +1,161 @@ +--- +title: "Rich Select Cell Editor - Customisation" +enterprise: true +--- + +The Rich Select Cell Editor supports cell renderers, value formatting, search and typing behaviour, multi-selection, and complex object values. + +## Cell Renderer + +The cell renderer used within the editor can be customised as shown below: + +{% gridExampleRunner title="Rich Select with Cell Renderer" name="rich-select-cell-renderer" /%} + +```js +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + cellRenderer: ColourCellRenderer, + cellEditorParams: { + values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], + cellRenderer: ColourCellRenderer, + valueListMaxHeight: 220 + } + // ...other props + } +] +``` + +{% partial file="./_component-interface-angular.mdoc" /%} +{% partial file="./_component-interface-javascript.mdoc" /%} +{% partial file="./_component-interface-react.mdoc" /%} +{% partial file="./_component-interface-vue.mdoc" /%} + +{% interfaceDocumentation interfaceName="IRichCellEditorRendererParams" config={ "description": "" } /%} + +## Search Values + +Different types of search are possible within the editor list as shown below: + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["searchType"] config={ "description": "" } /%} + +{% gridExampleRunner title="Rich Select Editor" name="rich-select-search-values" /%} + +```js +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + cellEditorParams: { + values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], + searchType: 'match', + } + // ...other props + } +] +``` + +## Allow Typing + +The editor input can be configured to allow text input, which is used to match different parts of the editor list items as shown below: + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["allowTyping"] config={ "description": "" } /%} + +{% gridExampleRunner title="Rich Select Editor" name="rich-select-allow-typing" /%} + +```js +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + cellRenderer: ColourCellRenderer, + cellEditorParams: { + values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], + allowTyping: true, + filterList: true, + highlightMatch: true, + } + // ...other props + } +] +``` + +## Format Values + +Items in the editor list can be formatted as shown below: + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["formatValue"] config={ "description": "" } /%} + +{% gridExampleRunner title="Rich Select Format Values" name="rich-select-format-values" /%} + +```js +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + cellEditorParams: { + values: ['English', 'Spanish', 'French', 'Portuguese', '(other)'], + formatValue: value => value.toUpperCase() + } + // ...other props + } +] +``` + +## Multi Selection + +The editor can be configured to allow the selection of multiple values as shown below: + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["multiSelect","suppressMultiSelectPillRenderer"] config={ "description": "" } /%} + +{% gridExampleRunner title="Rich Select Editor" name="rich-select-multi-select" /%} + +```js +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + cellEditorParams: { + values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], + multiSelect: true, + } + // ...other props + } +] +``` + +## Complex Objects + +When working with complex objects, a `formatValue` callback function is required to convert that complex object into a string that can be rendered by the Rich Select Editor. +If the `Grid Column` being edited is not using complex values, or if the Rich Select Editor value object has a different format (different properties) than the object +used by the `Grid Column`, a `parseValue` callback function is required to convert the editor format into the grid column's format. + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["formatValue","parseValue"] config={ "description": "" } /%} + +{% note %} +When working with `Cell Renderers`, a `formatValue` callback should still be provided so it will be possible to use functionality that +relies on string values such as `allowTyping`. +{% /note %} + +{% gridExampleRunner title="Rich Select Editor" name="rich-select-complex-objects" exampleHeight=300 /%} + +```js +const colors = [ + { name: "Pink", code: "#FFC0CB" }, + // ...other values +]; + +columnDefs: [ + { + cellEditor: 'agRichSelectCellEditor', + valueFormatter: (p) => `${p.value.name} (${p.value.code})`, + valueParser: (p) => p.newValue, + cellDataType: 'object', + cellEditorParams: { + values: colors, + formatValue: (v) => v.name, + } + // ...other props + } +] +``` + +## API + +{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" /%} diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colour-cell-renderer.component_angular.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colour-cell-renderer.component_angular.ts deleted file mode 100644 index 867fd9ded3b..00000000000 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colour-cell-renderer.component_angular.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ChangeDetectionStrategy, Component, computed, signal } from '@angular/core'; - -import type { ICellRendererAngularComp } from 'ag-grid-angular'; -import type { ICellRendererParams } from 'ag-grid-community'; - -@Component({ - standalone: true, - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` -
- {{ value() }} -
- `, - styles: [ - ` - :host { - overflow: hidden; - } - - .color-cell { - overflow: hidden; - text-overflow: ellipsis; - } - `, - ], -}) -export class ColourCellRenderer implements ICellRendererAngularComp { - params = signal(undefined); - value = computed(() => this.params()?.value); - - agInit(params: ICellRendererParams): void { - this.params.set(params); - } - - refresh() { - return false; - } -} diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_reactFunctionalTs.tsx b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_reactFunctionalTs.tsx deleted file mode 100644 index 08e99f081b2..00000000000 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_reactFunctionalTs.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; - -import type { CustomCellRendererProps } from 'ag-grid-react'; - -export default (props: CustomCellRendererProps) => - props.value != null && ( -
- - {props.value} -
- ); diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_typescript.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_typescript.ts deleted file mode 100644 index 238432a4fde..00000000000 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_typescript.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { ICellRendererComp, ICellRendererParams } from 'ag-grid-community'; - -export class ColourCellRenderer implements ICellRendererComp { - eGui!: HTMLDivElement; - - init(params: ICellRendererParams) { - const eGui = (this.eGui = document.createElement('div')); - eGui.style.overflow = 'hidden'; - eGui.style.textOverflow = 'ellipsis'; - - const { value } = params; - const colorSpan = document.createElement('span'); - const text = document.createTextNode(value ?? ''); - - if (value != null) { - colorSpan.style.borderLeft = '10px solid ' + params.value; - colorSpan.style.paddingRight = '5px'; - } - - eGui.appendChild(colorSpan); - eGui.append(text); - } - - getGui() { - return this.eGui; - } - - refresh() { - return false; - } -} diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_vue3.ts b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_vue3.ts deleted file mode 100644 index 65f7c5b3586..00000000000 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/_examples/rich-select-search-values/colourCellRenderer_vue3.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default { - template: ` -
- - {{params.value}} -
- `, -}; diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/index.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/index.mdoc index ba4aefb654e..5d0839482bc 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/index.mdoc +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-rich-select/index.mdoc @@ -3,15 +3,13 @@ title: "Rich Select Cell Editor" enterprise: true --- -An alternative to using the browser's `select` popup for dropdowns inside the grid. - -The Rich Select Cell Editor allows users to enter a cell value from a list of provided values by searching or filtering the list. +An alternative to using the browser's `select` popup for dropdowns inside the grid. The Rich Select Cell Editor allows users to enter a cell value from a list of provided values by searching or filtering the list. ## Enabling Rich Select Cell Editor Edit any cell in the grid below to see the Rich Select Cell Editor. -{% gridExampleRunner title="Rich Select Editor" name="rich-select-editor" /%} +{% gridExampleRunner title="Rich Select Editor" name="rich-select-editor" exampleHeight=400 /%} Enabled with `agRichSelectCellEditor` and configured with `IRichCellEditorParams`. @@ -35,315 +33,24 @@ Benefits over browser's `select` are as follows: ## Customisation -### Cell Renderer - -The cell renderer used within the editor can be customised as shown below: +The Rich Select Editor can be customised to give the desired results. See the [Customisation](./provided-cell-editors-rich-select-customisation/) page for details: -{% gridExampleRunner title="Rich Select with Cell Renderer" name="rich-select-cell-renderer" /%} - -```js -columnDefs: [ - { - cellEditor: 'agRichSelectCellEditor', - cellRenderer: ColourCellRenderer, - cellEditorParams: { - values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], - cellRenderer: ColourCellRenderer, - valueListMaxHeight: 220 - } - // ...other props - } -] -``` - -{% partial file="./_component-interface-angular.mdoc" /%} -{% partial file="./_component-interface-javascript.mdoc" /%} -{% partial file="./_component-interface-react.mdoc" /%} -{% partial file="./_component-interface-vue.mdoc" /%} - -{% interfaceDocumentation interfaceName="IRichCellEditorRendererParams" config={ "description": "" } /%} - -### Search Values - -Different types of search are possible within the editor list as shown below: - -{% gridExampleRunner title="Rich Select Editor" name="rich-select-search-values" /%} - -```js -columnDefs: [ - { - cellEditor: 'agRichSelectCellEditor', - cellRenderer: ColourCellRenderer, - cellEditorParams: { - values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], - allowTyping: true, - filterList: true, - highlightMatch: true, - valueListMaxHeight: 220 - } - // ...other props - } -] -``` - -### Allow Typing - -The editor input can be configured to allow text input, which is used to match different parts of the editor list items as shown below: - -{% gridExampleRunner title="Rich Select Editor" name="rich-select-allow-typing" /%} - -```js -columnDefs: [ - { - cellEditor: 'agRichSelectCellEditor', - cellRenderer: ColourCellRenderer, - cellEditorParams: { - values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], - allowTyping: true, - filterList: true, - highlightMatch: true, - valueListMaxHeight: 220 - } - // ...other props - } -] -``` - -### Format Values - -Items in the editor list can be formatted as shown below: - -{% gridExampleRunner title="Rich Select Format Values" name="rich-select-format-values" /%} - -```js -columnDefs: [ - { - cellEditor: 'agRichSelectCellEditor', - cellEditorParams: { - values: ['English', 'Spanish', 'French', 'Portuguese', '(other)'], - formatValue: value => value.toUpperCase() - } - // ...other props - } -] -``` - -### Multi Selection - -The editor can be configured to allow the selection of multiple values as shown below: - -{% gridExampleRunner title="Rich Select Editor" name="rich-select-multi-select" /%} - -```js -columnDefs: [ - { - cellEditor: 'agRichSelectCellEditor', - cellEditorParams: { - values: ['AliceBlue', 'AntiqueWhite', 'Aqua', /* .... many colours */ ], - multiSelect: true, - searchType: 'matchAny', - filterList: true, - highlightMatch: true, - valueListMaxHeight: 220 - } - // ...other props - } -] -``` - -## Complex Objects - -When working with complex objects, a `formatValue` callback function is required to convert that complex object into a string that can be rendered by the Rich Select Editor. -If the `Grid Column` being edited is not using complex values, or if the Rich Select Editor value object has a different format (different properties) than the object -used by the `Grid Column`, a `parseValue` callback function is required to convert the editor format into the grid column's format. - -{% note %} -When working with `Cell Renderers`, a `formatValue` callback should still be provided so it will be possible to use functionality that -relies on string values such as `allowTyping`. -{% /note %} - -{% gridExampleRunner title="Rich Select Editor" name="rich-select-complex-objects" exampleHeight=300 /%} - -```js -const colors = [ - { name: "Pink", code: "#FFC0CB" }, - // ...other values -]; - -columnDefs: [ - { - cellEditor: 'agRichSelectCellEditor', - valueFormatter: (p) => `${p.value.name} (${p.value.code})`, - valueParser: (p) => p.newValue, - cellDataType: 'object', - cellEditorParams: { - values: colors, - formatValue: (v) => v.name, - allowTyping: true, - filterList: true, - } - // ...other props - } -] -``` +- [Cell Renderer](./provided-cell-editors-rich-select-customisation/#cell-renderer) - use a cell renderer within the editor +- [Format Values](./provided-cell-editors-rich-select-customisation/#format-values) - format values within the list +- [Search Values](./provided-cell-editors-rich-select-customisation/#search-values) - different types of search matching +- [Allow Typing](./provided-cell-editors-rich-select-customisation/#allow-typing) - allow text input to match list items +- [Multi Selection](./provided-cell-editors-rich-select-customisation/#multi-selection) - allow the selection of multiple values +- [Complex Objects](./provided-cell-editors-rich-select-customisation/#complex-objects) - configure support for items that are complex objects ## Async Values -### Overview - -List values can be provided asynchronously to the editor as shown below: - -{% gridExampleRunner title="Rich Select Async Values" name="rich-select-async-values" /%} - -```ts -function fetchLanguages(_params: RichCellEditorValuesCallbackParams): Promise { - return new Promise((resolve) => { - setTimeout(() => resolve(['English', 'Spanish', 'French', 'Portuguese', '(other)']), 1000); - }); -} -``` - -```js -columnDefs: [ - { - field: 'language', - cellEditor: 'agRichSelectCellEditor', - cellEditorParams: { - values: fetchLanguages, - } - } -] -``` - -{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["values"] /%} - -### Paged Async Values - -For large datasets, `valuesPage` avoids loading everything at once. - -In paged mode the editor requests row ranges (and optional cursor tokens), rather than a single full list. - -Requests always include `startRow` and `endRow`. `cursor` is optional: it is `undefined` on the first request, then for forward paging it is automatically populated from the previous page result. - -You can use `valuesPageInitialStartRow` to open around the current value while still allowing navigation to earlier and later pages. - -{% gridExampleRunner title="Rich Select Paged Async Values" name="rich-select-paged-async-values" /%} - -```ts -function getLanguagesPage(params: RichCellEditorValuesPageParams): Promise> { - return fetch( - `/api/languages?startRow=${params.startRow}&endRow=${params.endRow}&cursor=${encodeURIComponent(params.cursor ?? '')}` - ).then((res) => res.json()); -} -``` - -```js -columnDefs: [ - { - field: 'language', - cellEditor: 'agRichSelectCellEditor', - cellEditorParams: { - valuesPage: getLanguagesPage, - valuesPageInitialStartRow: (value) => getRowForSelectedValue(value), - valuesPageSize: 100, - valuesPageLoadThreshold: 10 - } - } -] -``` - -{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["valuesPage", "valuesPageInitialStartRow", "valuesPageSize", "valuesPageLoadThreshold"] /%} - -### Async Filtering - -For advanced filtering scenarios, combine async `values` callback, `allowTyping`, and `filterListAsync` to enable async filtering. - -When `filterListAsync` is set to `true`, the cell editor behaves as follows: - -- It calls the `values` callback with the current search term. -- It delays the search request by 300ms (this can be adjusted using `searchDebounceDelay`) to avoid excessive calls. -- A loading indicator appears while the network request is in progress. -- Once the promise resolves, the dropdown is updated with the filtered results. - -This is shown in the example below: - -{% gridExampleRunner title="Rich Select Async Filtering" name="rich-select-full-async-values" /%} - -```ts -function fetchLanguages(params: RichCellEditorValuesCallbackParams): Promise { - return fetch(`/api/languages?search=${encodeURIComponent(params.search)}`) - .then(res => res.json()) - .then(data => data.items as string[]); -} -``` - -```js -columnDefs: [ - { - field: 'language', - cellEditor: 'agRichSelectCellEditor', - cellEditorParams: { - allowTyping: true, - filterList: true, - filterListAsync: true, - values: fetchLanguages - } - } -] -``` - -{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["filterListAsync", "searchDebounceDelay", "values"] /%} - -### Paged Async Filtering - -For very large, server-backed datasets, combine async filtering with `valuesPage` so filtered results are also loaded incrementally. -`valuesPageInitialStartRow` is only used for the initial unfiltered load; once the user types, filtered paging starts from row `0`. - -In this mode each request includes: - -- `search` for the current filter text. -- `startRow` and `endRow` for range-based pagination. -- `cursor` for cursor-based forward pagination APIs (`undefined` on the first request, then replayed from the previous response). - -You can implement either strategy in your datasource: - -- Range-based: use `startRow` / `endRow` and return `lastRow`. -- Cursor-based: use `cursor` for forward pages and still tolerate `startRow` / `endRow` for initial positioning and upward loading. - -{% gridExampleRunner title="Rich Select Paged Async Filtering" name="rich-select-paged-async-filtering" /%} - -```ts -function getFilteredLanguagesPage( - params: RichCellEditorValuesPageParams -): Promise> { - return fetch( - `/api/languages?search=${encodeURIComponent(params.search)}&startRow=${params.startRow}&endRow=${params.endRow}&cursor=${encodeURIComponent(params.cursor ?? '')}` - ).then((res) => res.json()); -} -``` - -```js -columnDefs: [ - { - field: 'language', - cellEditor: 'agRichSelectCellEditor', - cellEditorParams: { - allowTyping: true, - filterList: true, - filterListAsync: true, - valuesPage: getFilteredLanguagesPage, - valuesPageInitialStartRow: (value) => getRowForSelectedValue(value), - valuesPageSize: 100, - valuesPageLoadThreshold: 10 - } - } -] -``` - -{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" names=["filterListAsync", "valuesPage", "valuesPageInitialStartRow", "valuesPageSize", "valuesPageLoadThreshold"] /%} +The Rich Select editor can be configured to load values asynchronously. For large datasets the editor supports paging async values as well as filtering values asynchronously on a server. See the [Async Values](./provided-cell-editors-rich-select-async/) page for details: -## API Reference +- [Async Values](./provided-cell-editors-rich-select-async/) - load all values asynchronously +- [Paged Async Values](./provided-cell-editors-rich-select-async/#paged-async-values) - load pages as the user scrolls +- [Async Filtering](./provided-cell-editors-rich-select-async/#async-filtering) - return filtered values asynchronously +- [Paged Async Filtering](./provided-cell-editors-rich-select-async/#paged-async-filtering) - combine paged loading with filtering -{% interfaceDocumentation interfaceName="IRichCellEditorParams" overrideSrc="provided-cell-editors-rich-select/rich-select.json" /%} +## API -Continue to the next section: [Number Cell Editor](./provided-cell-editors-number/). +See all properties available on the [IRichCellEditorParams](./provided-cell-editors-rich-select-customisation/#api) interface. diff --git a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-select/index.mdoc b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-select/index.mdoc index b6a4c252126..5d09a004c5f 100644 --- a/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-select/index.mdoc +++ b/documentation/ag-grid-docs/src/content/docs/provided-cell-editors-select/index.mdoc @@ -86,8 +86,6 @@ This is down to the browser implementation and given there is no API for opening Select, there is nothing the grid can do. If you are unhappy with the additional click required, we advise you don't depend on the -browsers standard Select (ie avoid `agSelectCellEditor`) and instead use `agRichSelectCellEditor` or +browsers standard Select (ie avoid `agSelectCellEditor`) and instead use [Rich Select Cell Editor](./provided-cell-editors-rich-select/) or create your own using a [Cell Editor Component](./cell-editors/). {% /note %} - -Continue to the next section: [Rich Select Cell Editor](./provided-cell-editors-rich-select/). diff --git a/documentation/ag-grid-docs/src/content/interface-documentation/provided-cell-editors-rich-select/rich-select.json b/documentation/ag-grid-docs/src/content/interface-documentation/provided-cell-editors-rich-select/rich-select.json index 4ccd5576d96..e4a731304cd 100644 --- a/documentation/ag-grid-docs/src/content/interface-documentation/provided-cell-editors-rich-select/rich-select.json +++ b/documentation/ag-grid-docs/src/content/interface-documentation/provided-cell-editors-rich-select/rich-select.json @@ -2,7 +2,30 @@ "_config_": {}, "IRichCellEditorParams": { "values": { - "isRequired": false + "isRequired": false, + "interfaceHierarchyOverrides": { + "exclude": [ + "RichCellEditorValuesPageCallback", + "RichCellEditorValuesPageParams", + "RichCellEditorValuesPageStartRowCallback", + "IErrorValidationParams", + "ICellEditorParams", + "IErrorValidationParams" + ], + "include": [] + } + }, + "valuesPage": { + "interfaceHierarchyOverrides": { + "exclude": [ + "RichCellEditorValuesCallbackParams", + "ICellEditorParams", + "RichCellEditorValuesCallback", + "RichCellEditorValuesCallbackParams", + "IErrorValidationParams" + ], + "include": [] + } } } } From 3ba0b517804599c841f348fbc04c2425e1e54d35 Mon Sep 17 00:00:00 2001 From: seanlandsman Date: Tue, 24 Feb 2026 13:47:55 +0000 Subject: [PATCH 3/3] Snyk issues (#13189) --- .snyk | 472 +++++++++++++++++++++++++++++ packages/ag-grid-angular/.snyk | 91 ++++++ plugins/ag-grid-task-autogen/.snyk | 401 ++++++++++++++++++++++++ testing/module-size-angular/.snyk | 91 ++++++ 4 files changed, 1055 insertions(+) diff --git a/.snyk b/.snyk index a6016cdf91d..2e9cc77171b 100644 --- a/.snyk +++ b/.snyk @@ -156,4 +156,476 @@ ignore: axe is only used in development/testing - it's not used in the final production build expires: 2026-06-08T00:00:00.000Z created: 2026-02-12T10:10:00.000Z + SNYK-JS-AJV-15274295: + - '@kazuph/mcp-fetch@1.5.0 > @modelcontextprotocol/sdk@1.26.0 > ajv@8.17.1': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@modelcontextprotocol/server-puppeteer@2025.5.12 > @modelcontextprotocol/sdk@1.26.0 > ajv@8.17.1': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@modelcontextprotocol/server-sequential-thinking@2025.7.1 > @modelcontextprotocol/sdk@1.26.0 > ajv@8.17.1': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@upstash/context7-mcp@1.0.14 > @modelcontextprotocol/sdk@1.26.0 > ajv@8.17.1': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'rulesync@7.0.0 > @modelcontextprotocol/sdk@1.26.0 > ajv@8.17.1': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@kazuph/mcp-fetch@1.5.0 > @modelcontextprotocol/sdk@1.26.0 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@modelcontextprotocol/server-puppeteer@2025.5.12 > @modelcontextprotocol/sdk@1.26.0 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@modelcontextprotocol/server-sequential-thinking@2025.7.1 > @modelcontextprotocol/sdk@1.26.0 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@upstash/context7-mcp@1.0.14 > @modelcontextprotocol/sdk@1.26.0 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'rulesync@7.0.0 > @modelcontextprotocol/sdk@1.26.0 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: >- + used by mcp so not a directly exposed dependency and only used during development + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'eslint@9.37.0 > ajv@6.12.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint@9.37.0 > @eslint/eslintrc@3.3.1 > ajv@6.12.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'dependency-cruiser@13.1.5 > ajv@8.12.0': + reason: Not used in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'request@2.88.2 > har-validator@5.1.5 > ajv@6.12.6': + reason: Not used in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@astrojs/check@0.9.6 > @astrojs/language-server@2.16.2 > volar-service-yaml@0.0.67 > yaml-language-server@1.19.2 > ajv@8.17.1': + reason: Not used in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + SNYK-JS-MINIMATCH-15309438: + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint@9.37.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint@9.37.0 > @eslint/config-array@0.21.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint@9.37.0 > @eslint/eslintrc@3.3.1 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-image-snapshot@6.4.0 > rimraf@2.7.1 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint-plugin-sonarjs@3.0.5 > minimatch@9.0.5': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'typescript-eslint@8.46.0 > @typescript-eslint/eslint-plugin@8.46.0 > @typescript-eslint/type-utils@8.46.0 > @typescript-eslint/typescript-estree@8.46.0 > minimatch@9.0.4': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'madge@8.0.0 > dependency-tree@11.0.1 > precinct@12.1.2 > detective-typescript@13.0.0 > @typescript-eslint/typescript-estree@7.18.0 > minimatch@9.0.4': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.6.1 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.6.1 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'npm-run-all@4.1.5 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jscodeshift@0.16.1 > node-dir@0.1.17 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'patch-package@8.0.0 > rimraf@2.7.1 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'react-query@3.39.3 > broadcast-channel@3.7.0 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jscodeshift@0.16.1 > temp@0.9.4 > rimraf@2.6.3 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'madge@8.0.0 > dependency-tree@11.0.1 > filing-cabinet@5.0.2 > module-lookup-amd@9.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'dependency-cruiser@13.1.5 > glob@10.3.3 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@swc/cli@0.3.14 > minimatch@9.0.5': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@vitest/coverage-v8@2.1.9 > test-exclude@7.0.1 > minimatch@9.0.4': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@vitest/coverage-v8@2.1.9 > test-exclude@7.0.1 > glob@10.4.5 > minimatch@9.0.4': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'glob@11.1.0 > minimatch@10.1.1': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'glob@8.0.3 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@18.3.4 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@18.3.4 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@18.3.4 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'del@6.1.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z patch: {} diff --git a/packages/ag-grid-angular/.snyk b/packages/ag-grid-angular/.snyk index 3efc24d4101..138a42490a3 100644 --- a/packages/ag-grid-angular/.snyk +++ b/packages/ag-grid-angular/.snyk @@ -87,4 +87,95 @@ ignore: @angular/core is not used for SVG elements expires: 2026-06-08T00:00:00.000Z created: 2025-01-12T10:10:00.000Z + SNYK-JS-AJV-15274295: + - '@angular-devkit/build-angular@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv@8.17.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv@8.17.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > babel-loader@9.1.3 > schema-utils@4.2.0 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > copy-webpack-plugin@12.0.2 > schema-utils@4.3.3 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > babel-loader@9.1.3 > schema-utils@4.2.0 > ajv-formats@2.1.1 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > webpack@5.94.0 > schema-utils@3.3.0 > ajv@6.12.6': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'ng-packagr@18.2.1 > ajv@8.17.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + SNYK-JS-MINIMATCH-15309438: + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/package-json@5.2.1 > glob@10.3.14 > minimatch@9.0.3': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > make-fetch-happen@13.0.1 > cacache@18.0.3 > glob@10.3.14 > minimatch@9.0.3': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > npm-packlist@8.0.2 > ignore-walk@6.0.5 > minimatch@9.0.4': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > glob@10.4.5 > minimatch@9.0.4': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > sigstore@2.3.1 > @sigstore/tuf@2.3.4 > tuf-js@2.2.1 > @tufjs/models@2.0.1 > minimatch@9.0.4': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'ng-packagr@18.2.1 > cacache@18.0.3 > glob@10.3.14 > minimatch@9.0.3': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'karma-coverage@2.2.1 > minimatch@3.1.2': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'karma@6.4.2 > minimatch@3.1.2': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'karma@6.4.2 > glob@7.2.3 > minimatch@3.1.2': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + SNYK-JS-TAR-15307072: + - '@angular/cli@18.2.21 > pacote@18.0.6 > tar@6.2.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > make-fetch-happen@13.0.1 > cacache@18.0.3 > tar@6.2.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > tar@6.2.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'ng-packagr@18.2.1 > cacache@18.0.3 > tar@6.2.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z patch: {} diff --git a/plugins/ag-grid-task-autogen/.snyk b/plugins/ag-grid-task-autogen/.snyk index 92a73af346d..f11abc26c52 100644 --- a/plugins/ag-grid-task-autogen/.snyk +++ b/plugins/ag-grid-task-autogen/.snyk @@ -8,3 +8,404 @@ ignore: nx is only used during development - it's not used in the final production build expires: 2026-06-08T00:00:00.000Z created: 2026-02-12T10:10:00.000Z + SNYK-JS-MINIMATCH-15309438: + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint@9.37.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint@9.37.0 > @eslint/config-array@0.21.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint@9.37.0 > @eslint/eslintrc@3.3.1 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-image-snapshot@6.4.0 > rimraf@2.7.1 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > @jest/reporters@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/jest@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'eslint-plugin-sonarjs@3.0.5 > minimatch@9.0.5': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'typescript-eslint@8.46.0 > @typescript-eslint/eslint-plugin@8.46.0 > @typescript-eslint/type-utils@8.46.0 > @typescript-eslint/typescript-estree@8.46.0 > minimatch@9.0.4': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'madge@8.0.0 > dependency-tree@11.0.1 > precinct@12.1.2 > detective-typescript@13.0.0 > @typescript-eslint/typescript-estree@7.18.0 > minimatch@9.0.4': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.6.1 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@jest/globals@29.6.1 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-circus@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jest@29.7.0 > @jest/core@29.7.0 > jest-config@29.7.0 > jest-runner@29.7.0 > jest-runtime@29.7.0 > @jest/globals@29.7.0 > @jest/expect@29.7.0 > jest-snapshot@29.7.0 > @jest/transform@29.7.0 > babel-plugin-istanbul@6.1.1 > test-exclude@6.0.0 > glob@7.2.3 > minimatch@3.1.2': + reason: test/lint library - not in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'npm-run-all@4.1.5 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jscodeshift@0.16.1 > node-dir@0.1.17 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'patch-package@8.0.0 > rimraf@2.7.1 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'react-query@3.39.3 > broadcast-channel@3.7.0 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'jscodeshift@0.16.1 > temp@0.9.4 > rimraf@2.6.3 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'madge@8.0.0 > dependency-tree@11.0.1 > filing-cabinet@5.0.2 > module-lookup-amd@9.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'dependency-cruiser@13.1.5 > glob@10.3.3 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > @nx/devkit@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/esbuild@20.3.1 > @nx/js@20.3.1 > @nx/workspace@20.3.1 > nx@20.3.1 > minimatch@9.0.3': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@swc/cli@0.3.14 > minimatch@9.0.5': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@vitest/coverage-v8@2.1.9 > test-exclude@7.0.1 > minimatch@9.0.4': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@vitest/coverage-v8@2.1.9 > test-exclude@7.0.1 > glob@10.4.5 > minimatch@9.0.4': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'glob@11.1.0 > minimatch@10.1.1': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'glob@8.0.3 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@18.3.4 > ejs@3.1.9 > jake@10.8.7 > filelist@1.0.4 > minimatch@5.1.6': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@18.3.4 > ejs@3.1.9 > jake@10.8.7 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - '@nx/devkit@18.3.4 > tmp@0.2.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z + - 'del@6.1.1 > rimraf@3.0.2 > glob@7.2.3 > minimatch@3.1.2': + reason: Used in build & dev but not included in final production build + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-24T00:00:00.000Z diff --git a/testing/module-size-angular/.snyk b/testing/module-size-angular/.snyk index 6a0c4ca170e..784349b8c10 100644 --- a/testing/module-size-angular/.snyk +++ b/testing/module-size-angular/.snyk @@ -68,4 +68,95 @@ ignore: @angular/core is not used for SVG elements expires: 2026-06-08T00:00:00.000Z created: 2025-01-12T10:10:00.000Z + SNYK-JS-AJV-15274295: + - '@angular-devkit/build-angular@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv@8.17.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv@8.17.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > babel-loader@9.1.3 > schema-utils@4.2.0 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > copy-webpack-plugin@12.0.2 > schema-utils@4.3.3 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > @angular-devkit/architect@0.1802.21 > @angular-devkit/core@18.2.21 > ajv-formats@3.0.1 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > babel-loader@9.1.3 > schema-utils@4.2.0 > ajv-formats@2.1.1 > ajv@8.12.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular-devkit/build-angular@18.2.21 > webpack@5.94.0 > schema-utils@3.3.0 > ajv@6.12.6': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'ng-packagr@18.2.1 > ajv@8.17.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + SNYK-JS-MINIMATCH-15309438: + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/package-json@5.2.1 > glob@10.3.14 > minimatch@9.0.3': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > make-fetch-happen@13.0.1 > cacache@18.0.3 > glob@10.3.14 > minimatch@9.0.3': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > npm-packlist@8.0.2 > ignore-walk@6.0.5 > minimatch@9.0.4': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > glob@10.4.5 > minimatch@9.0.4': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > sigstore@2.3.1 > @sigstore/tuf@2.3.4 > tuf-js@2.2.1 > @tufjs/models@2.0.1 > minimatch@9.0.4': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'ng-packagr@18.2.1 > cacache@18.0.3 > glob@10.3.14 > minimatch@9.0.3': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'karma-coverage@2.2.1 > minimatch@3.1.2': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'karma@6.4.2 > minimatch@3.1.2': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'karma@6.4.2 > glob@7.2.3 > minimatch@3.1.2': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + SNYK-JS-TAR-15307072: + - '@angular/cli@18.2.21 > pacote@18.0.6 > tar@6.2.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > make-fetch-happen@13.0.1 > cacache@18.0.3 > tar@6.2.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - '@angular/cli@18.2.21 > pacote@18.0.6 > @npmcli/run-script@8.1.0 > node-gyp@10.2.0 > tar@6.2.1': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z + - 'ng-packagr@18.2.1 > cacache@18.0.3 > tar@6.2.0': + reason: angular/downstream dependency + expires: 2026-06-08T00:00:00.000Z + created: 2026-02-23T00:00:00.000Z patch: {}