[pull] latest from ag-grid:latest - #945
Merged
Merged
Conversation
…a columns (#14740) * AG-18094 fix row-group pill removal for groupHierarchy and object data Removing a row-group pill left the grouping in place in two cases. For a groupHierarchy source column, an explicit setColumns list was expanded to re-seat all of the column's hierarchy virtuals, so a list omitting one level re-expanded to include it. Route the explicit-list path through a new seatProvidedCol hook, which seats virtuals only for a source column that is not already active; the colDefs-extract path keeps seating them unconditionally. For a column whose callbacks throw during the resulting refresh, the remove button dispatched before calling stopPropagation, so the click fell through to the pill's sort listener, and the aborted update left a stale pill in the drop zone. Stop propagation first, and refresh the drop zone in a finally. Also make the grouping-object-data example's keyCreator and valueFormatter null-safe - they are called with an undefined value on group rows. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18094 pin row-group hierarchy list semantics in tests Address PR review feedback on the pill-removal fix. The exception-path test asserted only the end state, so it stayed green if the value formatter stopped throwing. Capture the window error and assert the formatter's message, and replace the guessed delays with waitFor polling. Add a hierarchy test covering an explicit setRowGroupColumns list: a round-trip of the current list is a no-op, while a list that omits an already-grouped source column's levels drops them and stays dropped under repetition. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18094 cover column-state restore of hierarchy levels A restore is not an explicit column list, so applyColumnState re-seats a groupHierarchy source column's levels even after an explicit list had dropped them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18094 remove row-group pills without re-deriving the column list setRowGroupColumns/setPivotColumns stay a pure function of the list they are given: a source col always seats its hierarchy levels, whatever the current state. Pill removal now expresses a removal instead of a new full list, so an individual hierarchy level can be dropped. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18094 cover hierarchy-level removal on the pivot drop zone Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18094 import TestGridsManager from ag-test-utils after the merge latest moved the behavioural test helpers into the ag-test-utils workspace package, so this branch's new test was the last '../test-utils' importer. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18094 record the thrown formatter error under happy-dom too The behavioural environment moved from jsdom to happy-dom on latest, and happy-dom rethrows a listener's exception out of dispatchEvent instead of surfacing it as a window 'error' event. Capture both so the exception path stays asserted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18094 carry pill-removal intent through the deferred commit In apply-button mode a hierarchy pill removal was drafted as "the remaining columns", and commit replayed that list through setColumns, which re-seats every hierarchy virtual of the source columns that remain - so the pill disappeared from the deferred UI and came back on Apply. The rowGroup/pivot drafts now also carry the colIds the user explicitly removed, and commit deactivates them after setColumns, matching the immediate strategy. A full-list set still passes no removals, so setColumns stays a pure function of its list. * AG-18094 honour an explicit hierarchy-level list on setColumns Removing a row-group pill worked, but the next drop-zone add or reorder undid it: those gestures commit a full-list set, and setColumns re-seated every configured level of any source col in the list, so the level just removed came straight back. seatActiveCol now seats a source col's levels only when the caller's list names none of them. A bare ['date'] still expands to every level, idempotently, so the setter stays a pure function of the list it is given; ['date-month', 'date'] is taken literally, which is the only way to express grouping by one level and what the drop zone needs. That leaves the deferred draft's removal carry load-bearing for just one state a colId list cannot express - a source col with none of its levels - so its comment now says so rather than claiming a purity it did not have. --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Stephen Cooper <scooperdev@gmail.com> Co-authored-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>
… event; retry far-edge scroll in continuous-auto-size (#15260) * AG-18467 test(docs-e2e): retry the far-edge scroll in continuous-auto-size-in-action `scrolling right fits the columns as they arrive` jumped the horizontal scroll viewport to `scrollWidth` once and then waited on the "Gold" header. A continuous auto-size pass landing while that scroll is in flight changes the total column width and clamps `scrollLeft` back, so the last column group is never rendered and the assertion waits out its full 20s timeout on a header cell that is not in the DOM. Retrying the jump until the header is rendered matches the idiom the next block in the same test already uses. This is the one nightly failure in the cluster that recurs across runs (webkit/vanilla on 16 Sep, chromium/typescript on 17 Sep); the three WebKit tool-panel / sub-menu failures in the same run are a separate, unresolved cause recorded on the ticket. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-18467 fix(testing): stamp test IDs on popups opened without a grid event The test-id service only re-stamped on grid events, so the Columns Tool Panel context menu and hover-opened sub menus were stamped only when an unrelated debounce happened to land after they opened. On Linux WebKit in the nightly docs tests that never happened, so agIdFor.menu() found nothing while the menu was plainly on screen. Observe the popup parent's child list instead. --------- Co-authored-by: claude[bot] <noreply@anthropic.com> Co-authored-by: Stephen Cooper <scooperdev@gmail.com>
…ustom layout (#15256) * [AG-18218] Fix(columns-tool-panel): keep group expand state under a custom layout `setColumnLayout` rebuilt the panel tree without applying any expansion state, so every group reverted to its default. The restored `initialState` was also consumed by the grid-derived tree, which may contain no groups at all - the saved group ids were discarded before the custom layout that owns them existed. Expansion is now captured and re-applied around a custom layout rebuild, and the initial state stays pending until a tree with groups is built. * fix(columns-tool-panel): keep restored group state for groups the grid layout lacks The pending-state guard cleared the restored state as soon as any group was built, so a grid whose own column groups differ from the custom layout's consumed it before `setColumnLayout` ran and the custom group reverted to its default expansion. Track the restored group ids as a set instead and use them as the fallback for group ids the current tree does not contain, so there is no consumption point to get wrong: live expansion wins for groups that exist, and the state still applies to whatever layout eventually owns the rest.
…15197) * AG-682 Log the AG package versions in the console under debug: true Logs 'Version: AG Grid Community=<v>, AG Grid Enterprise=<v>, AG Charts Enterprise=<v>' as the first debug line of grid creation, so mismatched versions across the packages are visible without anyone having to ask. The enterprise version is read from the registered EnterpriseCore module, and the AG Charts version and edition are pushed into community from IntegratedChartsModule.with() / SparklinesModule.with(). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-682 Polish the debug version-logging comments and JSDoc wording Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * AG-682 Key the AG Charts version on the registered module, not a module-global A grid now reports the AG Charts build of the charts modules it actually registered. Previously the last `.with()` call anywhere in the application won, so an app preparing IntegratedChartsModule.with(AgChartsEnterpriseModule) and SparklinesModule.with(AgChartsCommunityModule) reported Community for a grid using only the former. * AG-682 Format the logVersion unit test * AG-682 Cover differently configured charts modules in one process * AG-682 Report the AG package versions in the dev validation overlay The debug console line already lists the version of each AG package in use. The validation overlay is where a reported problem is actually read, so show the same versions in its footer and lead the copied diagnostics with them - a pasted diagnostic now carries the build that produced it. * AG-682 Keep the single-diagnostic markdown helper module-private diagnosticsToMarkdown is now the only entry point the panels use, so the per-diagnostic helper no longer needs exporting (knip). * AG-682 Space the new overlay CSS rule per stylelint * AG-682 Assert the overlay versions footer in the docs e2e examples * AG-682 Report the versions from the grid's own module snapshot The validation overlay derived its version list from the global module registry at the moment the panel was built, which keeps changing as an application lazy-loads modules for its other grids - so the footer and the copied diagnostics could name packages the grid never instantiated, and disagree with each other and with the startup log. Capture the text once in GridCoreCreator from the module list the grid is created from, and hand it to every surface that reports it. * AG-682 Report AG packages by npm name and open the hook to AG Studio * AG-682 Buffer pre-init module errors so the overlay surfaces them * AG-682 Replay a pre-init failure raised before capture was enabled registerModules([IntegratedChartsModule, ValidationModule]) validates the charts module while capture is still off, so error #257 was dropped and the overlay's contents depended on the order the modules were passed in. Hold a registration failure in a small pending list whatever the capture state, and replay it when the ValidationModule turns capture on. * Reduce comments * AG-682 Apply suppression config before replaying pre-init diagnostics --------- Co-authored-by: claude[bot] <noreply@anthropic.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Stephen Cooper <scooperdev@gmail.com>
…, not a columnResized event (#15261) On Angular in Firefox and WebKit the spec read widths after the first finished sizeColumnsToFit event, which could be a pass left over from the previous action, and the click's own effect could land after the click returned. Wait for the action's effect (column count or available width), then for the columns to fill the grid again, before reading.
The ag-studio port in #15224 reinstated the substring ignore list that RTI-3482 (#15222) had just removed, so `latest` again skips validation of every `#reference-`, `#example-` and `#contact-section` anchor. Reference anchors now render with static ids, so those fragments can and should be resolved; only the footer's `#manage_cookies` is genuinely client-handled, and it is matched exactly rather than as a substring. Keeps the `stripQueryString` helper #15224 extracted — that part was a refactor of the same query-stripping behaviour, not a revert.
…g a value (#15249) * [AG-17609] Fix(columns): infer cellDataType from the first row holding a value Inference read row 0 only, so a column whose leading row was empty resolved to `false` and never recovered. Scan rows until a value is found instead, and read the arriving rows from the row model during an update so transaction-populated grids infer too. * [AG-17609] Docs(cell-data-types): say which value the inferred type comes from * [AG-17609] Refactor(columns): extract the per-column inference reset * [AG-17609] Refactor(columns): carry row data on the rowDataUpdateStarted event * [AG-17609] Docs(cell-data-types): drop the redundant inferred-value note * [AG-17609] Refactor(columns): drop the comments added by this change
) Every AG site emits the Organization node under the grid `@id` (https://www.ag-grid.com/#organization), but the charts and studio pages defined it as "AG Charts" / "AG Studio" with their own URL, logo and no company details, while the grid home page defined it as AG Grid Ltd with the Wikidata link. Move the company details into `ag-website-shared/src/content/organization/agGridOrganization.json`, emitted through a shared `buildAgGridOrganization`, so all three sites emit the same node and there is one place to edit it. The Organization `sameAs` now lists company-level profiles only (GitHub organisation, X, YouTube, LinkedIn, Crunchbase, Wikidata) instead of the footer's per-product social links; product profiles belong on the SoftwareApplication node.
Adds the gh-triage-manual-construct-repro repository_dispatch event and routes it to stage=construct-repro, mirroring the existing four manual AITGH buttons. Consumer-side wiring for @ag-grid/dev-prompts' new manual-dispatch-only construct-repro stage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )